zoukankan      html  css  js  c++  java
  • 关于 JavaScript 中一个小细节问题 (在控制台中直接 {Name:'王尼玛',Age:20} 对象报错问题)

      在 Chrome 浏览器,大家可能遇到这样一个小问题。 随便输入一个 Object 对象  ,比如 {Name:'王尼玛',Age:20} ,将会报错。之前,也从来没去考虑过到底是为啥原因。

       今天,刚好看到博客园有博友文章,顺便记录一下。( 直接输入 {Name:'王尼玛',Age:20},会将其以代码块情形进行处理)

      

       在 JavaScript 中, : 有三种作用,想必大家都知道,其一  三元表达式  true? A:B,其二 在 switch case 中 case 语句中会用到,其三 就是上图中,对象直接量表达式中。

       其实 ,在 JS 中,: 还有一种用法,如下所示,内容来自 w3school,常用于循环语句

    label : statement--- 语法
    
    var iNum = 0;
    
    outermost:
    for (var i=0; i<10; i++) {
      if (i == 5) 
        continue outermost;
      
    }
    

        那么,在控制台中出现的错误,就显而易见了,因为当碰到  { Name:'王尼玛',Age:20 } ,直接把其当成语句块运行,之后,将其解析成标签语句,从而产生了语法错误

       

         谈到此处,其实大家在使用 ajax 时候,不是经常也遇到一个问题吗,为啥要对于返回的 JSON 字符串进行 eval( "(" +data+“)” )?

          eval() 函数可执行某个字符串,并执行其中的的 JavaScript 代码。 加括号是用来避免,在运行期间,以代码块情形处理字符串,从而导致报错。

       

         感谢

        http://www.cnblogs.com/binarytree-fe/p/4950798.html

        http://www.cnblogs.com/webflash/archive/2009/11/15/1603537.html

  • 相关阅读:
    程序员最怕的事
    钱钟书是怎样做读书笔记的 杨绛
    编码风格不是编码规范
    Google Reader明日关闭:14款替代品对比
    移动应用设计领域中最拔尖的15大应用
    TOGAF:企业信息化复杂吗?
    敏捷个人回顾以及体系2014版线下分享活动
    敏捷个人手机应用iOS和Android公开注册
    IT人的自我导向型学习:学习的4个层次
    IT人的自我导向型学习:学习的3个维度
  • 原文地址:https://www.cnblogs.com/Lumia1020/p/4952964.html
Copyright © 2011-2022 走看看