详细介绍JS两种语法使用说明
创始人
2024-06-19 16:01:35
0

后面跟任意的表达式,JS两种语法有明显不同。匹配时会先计算case后面的表达式再匹配。匹配时用的是 === 符号,而不是 == 符号,所以匹配过程不允许任何类型转换,default 放在最后只是逻辑上的需求,而它可以放在 switch 内的任何地方。

  1. var x = 1;  
  2.         switch (x + 1) {  
  3.             case '2':  
  4.                 alert('string:2');  
  5.                 break;  
  6.             default:  
  7.                 alert('default');  
  8.                 break;  
  9.             case 1 + 1:  
  10.                 alert('number:2');  
  11.                 break;  
  12.         }  
  13.         // result:  
  14.         // 'number:2' 

语法:for(variable in object)
其中 variable  允许任意的表达式,只要计算结果能作为赋值表达式的左侧,迭代对象属性名时并不保证任何特殊的迭代顺序,它也只迭代用户自定义的属性,而预定义的属性和方法是不会迭代的(比如:Math 的 cos 属性)数组本身是一种特殊的对象,当JS两种语法应用于数组时,迭代的是数组的索引。

  1. // 将对象 obj 的属性名复制到数组中  
  2.         var obj =  
  3.         {  
  4.             x: 1,  
  5.             y: new Date(),  
  6.             z: function() { }  
  7.         }  
  8.         var arr = new Array();  
  9.         var i = 0;  
  10.         for (arr[i++] in obj);  
  11.         alert(arr[0]);// 'x'  
  12.         alert(arr[1]);// 'y'  
  13.         alert(arr[2]);// 'z' 

当解析器遇到方法定义时,解析器对其进行解析并存储在一个以方法名命名的对象属性中。JS两种语法当这个方法是内嵌在其他方法中时,这个属性是 call 对象的属性(每个方法里都有一个call对象。

  1. var i = 1;  
  2.        single:  
  3.        {  
  4.            if (i == 1)  
  5.                break single;  
  6.            i++;  
  7.        }  
  8.        alert(i);  
  9.        out:  
  10.        while (i == 1 || i == 3) {  
  11.            while (true) {  
  12.                i++;  
  13.                alert(i);  
  14.                if (i == 2) {  
  15.                    continue;  
  16.                }  
  17.                else {  
  18.                    continue out;  
  19.                }  
  20.            }  
  21.            i++;  
  22.            alert(i);  
  23.        }  
  24.        alert(i);  
  25.        // result: 

而方法里的局部变量或内嵌方法均存储于此对象属性中),JS两种语法否则是全局对象的属性,方法和变量是在不同时间被解析定义的,方法是在解析的时候被定义的,而变量是在运行的时候被定义的。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...