第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript eval() 函數(shù)的參數(shù)

javascript eval() 函數(shù)的參數(shù)

德瑪西亞99 2023-09-28 10:19:04
我很想在MDN上閱讀有關(guān) eval() 函數(shù)的更多信息,并遇到了以下段落如果 eval() 的參數(shù)不是字符串,則 eval() 返回該參數(shù)不變。在以下示例中,指定了 String 構(gòu)造函數(shù),并且 eval() 返回 String 對象而不是計算字符串。eval(new String('2 + 2')); // returns a String object containing "2 + 2" eval('2 + 2');             // returns 4這對我來說沒有意義,因為“如果 eval 不評估它的參數(shù),如果它不是字符串,那么它為什么要創(chuàng)建一個新的對象實例?。俊?
查看完整描述

3 回答

?
楊魅力

TA貢獻1811條經(jīng)驗 獲得超6個贊

這非常簡單。您可以eval如下剖析:


if (typeof argument === "string") return <evaluation of string>;

else return argument; // eval just returns what it gets

所以你的例子:


    eval(new String('2 + 2'));

您可以將其分為兩個語句:


let arg = new String('2 + 2');

console.log(typeof arg); // object

console.log(eval(arg) === arg); // true, because typeof arg is not "string"


另外兩個示例將類型字符串傳遞給eval:


let arg = "new String(2+2)";

console.log(typeof arg); // string

// Now we get evaluation of 2+2 and String constructor is called:

console.log(eval(arg)); // a String object (that's what the constructor produces)

'2 + 2'在第三個示例中,計算字符串,即字符串“2 + 2”。其余與第二個例子相同。

請注意,String 對象不是 string”類型,而是“object”類型。


查看完整回答
反對 回復(fù) 2023-09-28
?
Smart貓小萌

TA貢獻1911條經(jīng)驗 獲得超7個贊

返回的類型new String('2 + 2')"object"。

console.log( typeof new String('2 + 2') )
console.log( typeof new String('2 + 2').toString() )

由于這是一個對象,


如果 eval() 的參數(shù)不是字符串,則 eval() 返回該參數(shù)不變。


如果您使用 專門將 String 對象強制轉(zhuǎn)換為字符串基元.toString(),則它會按您的預(yù)期運行。


console.log(eval('2 + 2'));   

console.log(eval(new String('2 + 2')));

console.log(eval(new String('2 + 2').toString()));


查看完整回答
反對 回復(fù) 2023-09-28
  • 3 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號