JavaScript字符串问题
天蓬老师
天蓬老师 2017-04-10 16:54:28
[JavaScript讨论组]

问题应该是个特别基础的,但是我没有搞懂,希望有谁耐心解释下

var s1 = "2 + 2"; // Creates a string literal value
var s2 = new String("2 + 2"); // Creates a String object
eval(s1); // Returns the number 4
eval(s2); // Returns the string "2 + 2"

就是S1返回4的具体的机制是怎么回事?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
ringa_lee

eval 函数执行代码返回结果,所以运行 2 + 2 就是 4 啦。
不过其参数要为 string 型的,传入 String 对象型就只是返回 String 的内容而已。

ringa_lee

eval函数的作用是把传入的字符串基本类型字面量当作javascript代码做动态解析并执行,解析后的代码就是数字2加上数字2,所以结果返回数字4。
而变量s2不是字符串字面量,而是字符串包装类型对象,所以传进去什么返回的还是什么。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号