Можно сказать, что все типы данных JS имеют два метода: Value Of и ToString, кроме NULL. Они оба решают проблемы работы и отображения значения JavaScript. Он очень широко используется в программах. Давайте познакомим это вам один за другим.
Метод значения JavaScript ()
Метод значения () возвращает исходное значение логического объекта.
Использование booleanobject.valueof (), возвращает исходное логическое значение со значением BooleanObject. Если объект, вызывный метод, не является логическим, выброшен тип исключений.
<script type = "text/javascript"> var boo = new Boolean (false); document.write (boo.valueof ()); </script>
Приведенный выше сценарий выведет false.
Метод JavaScript ToString ()
Метод ToString () преобразует логическое значение в строку и возвращает результат.
Использование booleanobject.toString (), возвращаемое значение возвращает строку «true» или «false» на основе исходного логического значения или значения объекта BooleanObject. Если объект, вызывный метод, не является логическим, выброшен тип исключений.
Этот метод автоматически вызывается, когда логический объект используется в строковой среде.
Следующий скрипт создаст логический объект и преобразует его в строку:
<script type = "text/javascript"> var boo = new Boolean (true); document.write (boo.tostring ()); </script>
Вывод скрипта: true.
Давайте посмотрим на пример:
var aaa = {i: 10, valueof: function () {return this.i+30; }, toString: function () {return this.valueof ()+10; }} оповещение (AAA> 20); // trueAlert (+aaa); // 40alert (AAA); // 50Это результат, потому что они тайно называют значения или методов топлива. Но как отличить при каких обстоятельствах, какой метод называется? Мы можем проверить это с помощью другого метода. Так как Console.Log используется, пожалуйста, экспериментируйте в FF с установленным Firebug!
var bbb = {i: 10, toString: function () {console.log ('toString'); return this.i;}, valueof: function () {console.log ('valueof'); return this.i;}} alert (bbb); // 10 toStringErtert (+bbb); // 10 valueofAlert (''+bbb); // 10 valueofAlert (String (bbb)); // 10 ToStringAlert (номер (BBB)); // 10 valueofAlert (bbb == '10'); // true valueofalert (bbb === '10'); // ЛОЖЬНа первый взгляд, результатом является примерно ощущение, что если он преобразуется в строку, называется значение значения, но два из них очень диссонируют. Одним из них является предупреждение (''+bbb), строковое объединение следует называть методом ToString ... Другое мы можем временно понять, что оператор === не выполняет неявное преобразование, поэтому они не вызываются. Чтобы преследовать правду, нам нужны более строгие эксперименты.
var aa = {i: 10, toString: function () {console.log ('toString'); вернуть это. // 10 toStringAlert (''+aa); // 10 ToStringAlert (String (AA)); // 10 ToStringAlert (номер (AA)); // 10 ToStringAlert (aa == '10'); // True ToStringAlertПосмотрите на ценность снова.
var bb = {i: 10, valueof: function () {console.log ('valuef'); return this.i;}} alert (bb); // [объект объекта] alert (+bb); // 10 valueOfalert (''+bb); // 10 valueOfalert (String (bb)); // [объект объекта] alert (number (bb)); // 10 valueofAlert (bb == '10'); // True ValueOfЯ нашел это немного другим? ! Это не так однородное и регулярное, как ToString выше. Для этого [объекта объекта] я, вероятно, унаследовал его от объекта, давайте удалим его и посмотрим.
Object.prototype.tostring = null; var cc = {i: 10, valueof: function () {console.log ('valueof'); return this.i;}} alert (cc); // 10 valueofAlert (+cc); // 10 valueofAlert (''+cc); // 10 valueOfalert (String (cc)); // 10 valueofAlert (число (CC)); // 10 valueofAlert (cc == '10'); // True ValueOfЕсли только ToString переписано, преобразование объекта будет игнорировать существование значения при преобразовании. Однако, если только метод значения переписывается, метод значения будет дано приоритет при преобразовании в строку. Если вы не можете позвонить в ToString, вы можете только позволить Value Of Battle. Для этой странной проблемы сплайсинга струны это может быть связано с оператором. Когда вы откроете ECMA262-5, вы обнаружите, что есть операция GetValue. Ну, тогда ответ должен быть раскрыт. Перезапись увеличит оптимизацию их вызовов, и в случае операторов приоритет стоимости уже выше, чем у ToString.
Выше приведено полное описание значений и методов Тостронга в JavaScript, введенных вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!