JS精粹(二)

这章主要讲语法,DC使用了表示形式语法的巴克斯范式图,这的确比语言来得准确简洁。我只想表达一个问题:表达式与表达式语句的关系。因为其他问题很明白。

从DC的巴科斯范式图上大致可以认为,表达式是比表达式语句宽泛的。DC的子集中表达式语句是表达式的真子集。

表达式语句主要用于单个或多个标识符赋值、函数或方法调用、删除对象的属性,语法开头是标识符。

表达式:字面量、标识符、加上圆括号的表达式、prefix+expression、expression+infix+expression、expression+"?"+expression+":"+expression、expression调用、

expressio属性提取、new expression 调用、delete + expression+refinement.

具体的巴科斯范式图我就不画了,详见JS语言精粹。

时间: 2024-10-02 22:05:46

JS精粹(二)的相关文章

JS的二维数组

今天,记录一下JS的二位数组,并附上例题. 一.二维数组的本质:数组中的元素又是数组. 其实,我们都见过这样的二维数组,只不过没在意罢了,例如: var arr = [[1,2,4,6],[2,4,7,8],[8,9,10,11],[9,12,13,15]] //这就是一个二位数组arr[2][3]; // 11 注意:表示第三列第4行所在的元素.角标从0开始 二.下面介绍二维数组的初始化 记住了二维数组的本质,初始化也难不倒我们了.看一下实例 实例一: var arr = [[1,2],[a,

JS学习二

函数作用域和声明提前 var scope = 'global'; function f() { console.info(scope);   //输出undefined var scope = 'local'; console.info(scope);  //输出 local } 上述代码等价于 function f() { var scope; console.info(scope); scope = 'local'; console.info(scope); } 将函数内的变量声明"提前&q

mongo shell启动配置文件.mongorc.js(二)

mongo shell启动配置文件.mongorc.js(二) 如果你的主目录下有个.mongorc.js文件,那么当你启动shell时他就会自动运行.使用它可以初始化任何你经常使用的helper方法和你不想意外操作的删除方法. 比如,你不想使用默认的dropDatabase()方法了,你可以在.mongorc.js文件中添加下面的命令: DB.prototype.dropDatabase = function() {        print("No dropping DBs!");

玩转Node.js(二)

玩转Node.js(二) 先来回顾上次的内容,上一次我们使用介绍了Node.js并写了第一个服务器端的Hello World程序,在这个Hello World程序中,请求自带的http模块并将其赋给http变量,然后调用http模块的createServer函数,这个函数会返回一个对象,这个对象有一个叫做listen的方法,而这个方法有一个数值参数,指定这个HTTP服务器监听的端口号,我们当时定义的是8888端口号.那么为什么看起来有些复杂呢?那是因为我们向createServer函数传递了一个

js之二维数组定义和初始化三种方法

方法一:直接定义并且初始化,这种遇到数量少的情况可以用 var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]] 方法二:未知长度的二维数组 var tArray = new Array();   //先声明一维 for(var k=0;k<i;k++){        //一维长度为i,i为变量,可以根据实际情况改变

java和js生成二维码

1. java生成二维码 1.1 依赖jar包配置(使用maven依赖) 1 <dependency> 2 <groupId>com.google.zxing</groupId> 3 <artifactId>core</artifactId> 4 <version>3.0.0</version> 5 </dependency> 6 <dependency> 7 <groupId>com.

JS:二维数组排序和获取子级元素

JS:二维数组排序和获取子级元素 1. 二维数组排序 1.按数值排序 1 var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]]; 如果我们要按每个子数组的第一列来排序要如何做呢,我们可以定义一个比较函数: 1 arr.sort(function(x, y){ 2 return x[0] – y[0]; 3 }); 这里的比较函数的作用是什么呢?其实是数组依次将数组元素复制给x,y,比如首先将arr[0]赋给x,arr[1]赋给y,然后用x[0] – y[0],根

js生成二维码的jquery组件–qrcode

js生成二维码的jquery组件–qrcode 2015/01/30 / 2508 VIEWS / JAVASCRIPT, JQUERY 有一些耗cpu的计算,完全可以在客户端上计算,比如生成二维码. qrcode其实是通过计算,然后使用jquery实现图形渲染和画图.支持canvas和table两种方式生成我们所需的二维码. 一.具体用法 1.所需资源 qrcode是jquery组件,需要至少两个js, 就是 jquery 和 jquery.qrcode.您可以到https://github.

使用 jquery.qrcode.js生成二维码

技术开发人员如何快速生成二维码,下面介绍使用 jquery.qrcode.js生成二维码方式 jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码. 此插件是能够独立使用的,体积也比较小,使用gzip压缩后才不到4kb. 第一种生成没有图片的二维码: 准备环境: jquery-1.8.3.min.js,jquery.qrcode.min.js jquery.qrcode.min.js不好找,我就直接把代码贴出

js函数调用二种常用方法的例子

js中函数调用的两种常用方法. 一个js函数 function test(aa){ window.alert("你输入的是"+aa); } 方法一:直接调用 test("dddd");方法二:函数赋值给变量var abc=test;abc('中国');//用变量来调用函数注意:当写成这种形式的时候,var abc=test("dddd"); 不能通过变量abc来调用函数.这种写法当test有返回值的时候会把返回值赋值给abc,当没有返回值的时候a