jjzjj

ToString

全部标签

javascript - 操纵 bool 值的字符串化

是否可以操纵bool值的字符串化方式?更改Boolean.prototype.toString似乎没有帮助。这里是我在mozrepl和FF3中的测试。repl>Boolean.prototype.toString=function(){returnthis==true?"1":""}function(){…}repl>a.toString()""repl>a=truetruerepl>a.toString()"1"repl>a+"""true"repl>a=falsefalserepl>a+"""false"我对ECMA规范的理解是+应该调用toString()。更新:好的,我找到答案

Javascript 权威指南 : the confusion of steps of converting object to a string

根据Javascript权威指南第6版3.8.3节:Toconvertanobjecttoastring,JavaScripttakesthesesteps:•IftheobjecthasatoString()method,JavaScriptcallsit.Ifitreturnsaprimitivevalue,JavaScriptconvertsthatvaluetoastring(ifitisnotalreadyastring)andreturnstheresultofthatconversion.Notethatprimitive-to-stringconversionsarea

javascript - 调用以字符串编码的 javascript 函数

如果我像这样将函数放入字符串中:varfunctionString=function(message){console.log(message);}.toString();有什么方法可以将字符串转换回函数并调用它吗?我试过了eval(functionString)返回“UncaughtSyntaxError:Unexpectedtoken”,和functionString.call(this,"HI!");返回“undefinedisnotafunction”。在javascript中这甚至可能吗?提前感谢您的回复!编辑:这个问题的重点是函数已使用toString()转换为字符串。所以

javascript - 是否可以在 JavaScript 中更改对象类型的名称?

例如:Object.prototype.toString.call(newDate);//[objectDate]Object.prototype.toString.call(newArray);//[objectArray]Object.prototype.toString.call(newObject);//[objectObject]现在考虑一下:varPhoneNumber=function(number){this.number=number;}我可以覆盖toString()方法,但它不会真的重命名对象类型。它只是有点假:PhoneNumber.prototype.toStr

javascript 意外标记。 `{}.toString()`

我的问题是为什么下面是不正确的functionhello(){{}.toString();//Unexpectedtoken.}但使用return更正:functionhello(){return{}.toString();}不知道解析器如何为不正确的版本工作,{}是否被视为BlockStatement?如果是,那为什么?感谢详细解释 最佳答案 Noideahowparserworksfortheincorrectversion,is{}treatedasBlockStatement?没错。...why?纯粹是因为语法就是这样设计的

javascript - 这个javascript错误是什么意思?调用方法到 Location.toString 的权限被拒绝

这个错误刚刚开始在我们的网站上不断出现。调用方法到Location.toString的权限被拒绝我看到谷歌帖子表明这与flash和我们的crossdomain.xml有关。发生这种情况的原因是什么?您如何解决? 最佳答案 您是否使用javascript在指向不同域的框架/iframe之间进行通信?JS“同源/域”安全策略不允许这样做。即,如果你有并且bar.com上的脚本尝试访问window["foo"].Location.toString,您将得到这个(或类似的)异常。另请注意,如果您有来自不同子域的内容,同源策略也可以生效。He

javascript - 为什么我无法读取未定义的属性 'toString'

我使用this包裹。我在slug函数的开头添加了这些console.log。functionslug(string,opts){console.log('log1:-------');console.log('log2:'+string);console.log('log3:'+typeofstring);string=string.toString();....}这是输出:log1:-------log2:YüzeyAktifMaddelerlog3:string/Users/------/seeder/node_modules/mongodb/lib/utils.js:99proc

javascript - Object.prototype.toString.apply(value) 与 value.toString() 有何不同?

据我了解,前者将:在Object上找到toString方法在value上调用它,但this绑定(bind)到valuevalue.toString()会。在value的原型(prototype)链中找到toString方法通过函数调用模式调用toString将与this绑定(bind)的值作为值所以不同之处在于,如果值中有一个重写的toString方法……它将使用它。我的问题是:这是唯一的区别吗?相反,如果我们想保证我们正在调用Parent的方法而不可能被Child覆盖,那么此模式是否是使用的标准模式?(在这种情况下,Parent=Object,Child=类值来自,如果我们以经典方式

javascript - 为什么 toString 和 hasOwnProperty(等)不出现在 JavaScript 的 for-in 循环中?

我与另一位开发人员讨论了hasOwnProperty以及您应该如何在javascript的for-in循环中使用它,他提出了一个很好的问题。当您执行for-in循环时,为什么toString、hasOwnProperty和其他内置方法没有出现在循环中? 最佳答案 ECMAScript为对象(例如原型(prototype))中的每个属性定义了几个属性。其中之一是enumerable属性,如果它被设置为false,那么该属性将被跳过。您实际上可以使用defineProperty操作这些属性功能:Thismethodallowspreci

javascript - 为什么 `{}.toString.apply(array)` 不起作用?

通常,当我想检查对象的类型时(无论是数组、NodeList还是其他),我使用以下方法:vararr=[]//Idon'tdothis,butit'sforthesakeoftheexamplevarobj={}obj.toString.apply(arr)//Thisworks问题是:为什么我不能做以下事情?vararr=[]{}.toString.apply(arr)//Syntaxerror:Unexpectedtoken.我不明白语法错误在哪里。虽然我可以用[]做一些事情,但以下工作:varnodeList=document.getElementsByClassName('foo