Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

关于 JavaScript 的语句返回值

  由于以前的文章太多,我现在无法确定以前的文章中是否已经介绍 JavaScript 的语句返回值的问题了,至少我没搜索到。不过这也无妨,反正就只是个简单的概念。关键是最近想用它,可是没找到更好的入手方式,所以才突然纠结起这个问题。
  JavaScript 的语句也是有执行结果的,我称它为返回值。比如我们在控制台直接输入点东西,即使不打 log 也会把结果回显,这个就是语句的返回值。比如在控制台中直接输入 { a: 123 }   得到的结果则是 123,而不是一个对象。因为外层的大括号被作为语句块的大括号解析,而不是作为对象表达式解析。而里面的 a: 则变成了一个 label 语句。后面的 123 则是一个表达式语句。最后 123 执行后其结果一级级地返回直到输出控制台。或者在控制台执行 { a: 123 } - 1   也不会得到 NaN 而是得到 -1,因为前面的大括号依然被作为语句块解析,后面的 - 1 被视为是一个单独的语句,执行后返回最后一个语句也就是 -1。
  如果是在程序中要获取语句的返回值,我所知道的唯一办法就是 eval。 // 这个代码执行将返回 -1
eval('{ a: 123 } - 1');
  这就是我纠结的地方,由于想在程序中利用 JavaScript 的这个机制,可是语言内部又没有提供一套正常的获取方式(eval 属于黑魔法,不想用),所以我才纠结到底要不要用它。或者有没有什么 eval 之外可以取得语句返回值的方法大家也可以分享下,要是真没法解决那就只能作罢了。
网名:
3.80.55.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^