龙空技术网

第5节 JavaScript基础语法

零点程序员 66

前言:

当前你们对“压缩后jquery语法错误”大致比较重视,大家都想要学习一些“压缩后jquery语法错误”的相关内容。那么小编也在网上收集了一些对于“压缩后jquery语法错误””的相关资讯,希望你们能喜欢,同学们一起来了解一下吧!

任何语言的核心都必然会描述这门语言的最基本的工作原理;而描述的内容通常都要涉及这门语言的语法、操作符、数据类型、内置功能等用于构建复杂解决方案的基本概念;实际上,我们现在要学的就是ECMA-262通过ECMAScript的描述了Javascript的所有基本概念;

一.语法:

1.标识符(IDentifier):

所谓标识符就是一个名字,是指用来标识某个实体的符号,就是命名,就是指变量、函数、属性的名字,或者参数名;

命名规则:第一个字符必须是字母、下划线或一个美元符号$,其他字符可以是字母、下划线、$或数字;

注:不能用数字开头(以便区分标识符和数字);

var i;var w123;var $wangwei;var _zero;var π = 3.1415926;var 零点程序员 = "零点教育";console.log(零点程序员 + ":" + π);

说明:JS允许标识符使用Unicode字符,即允许使用非英语或数学符号来书写标识符;但出于可移植性和易读性,通常只使用ASCII字线和数字来书写标签符;

按照惯例:采用小驼峰大小写格式,如:userName,虽然没有强制要求采用这种格式,但为了与ECMAScript内置的函数和对象名格式保持一致,最好使用这种方式;

采用这种方式,一定要使用有意义的单词,如:

var str;var user_name;var userName;var txtUserName;var intUserAge;var bSex;var get_user_name = function(){};var getUserName = function(){};

区分大小写(需要注意,html和CSS不区分大小写;许多JS对象和属性与它们所表示的HTML标签和属性是同名的);

<a href="; onClick="alert('zero')">this is a</a><script>    var a = document.getElementsByTagName('a')[0];    console.log(a.href);    a.onclick = function(){        alert("network");    }</script>

忽略空格:可以在代码中随意使用空格和换行,因此可以采用整齐、缩进排版代码,提高代码的可读性:

var a,b,c = 1;var person = {    name : "wangwei",    age : 18,    native : "安徽"}

3.注释:

// 单行注释/* * 这是多行(块级)注释* 可书写多行* 多行注释不能嵌套*/

多行注释第二行开头不必使用*,之所以添加星号,纯粹是为了提高注释的可读性,这种格式在企业级应用中用得比较多;并且星号与内容最好有一个空格,这不是什么硬性规定,纯属习惯,好的习惯就是专业素质的体现。

4.直接量(literal):

就是程序中直接使用的数据值,一般用在表达式中,如:

12;  // 数字1.2;  // 小数"hello world";  // 字符串true;/zeronetwork/gi;  // 正则

5.严格模式:

ECMAScript5引入了严格模式(strict mode);严格模式是为Javascript定义了一种不同的解析与执行模型;在此模式下,ECMAScript3中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误;启用严格模式,可以在顶部添加:”use strict”;这行代码看起来像是字符串,而且也没有赋值给任何变量,但其实它是一个编译指示(pragma),租用于告诉支持的Javascript引擎切换来严格模式;

也可以指定函数在严格模式下执行,在函数内部的上方包含这条编译指示:

function doFun(){

“use strict”;

}

注:格式模式下,Javascript的执行结果会有很大的不同。

6.语句:

ECMAScript中的语句以一个分号结尾;如果省略分号,则由解析器确定语句的结尾,如:

var a = 3  // 即使没有分号也可以,但不推荐var b = 4var a = 3; var b = 4;  // 第一个分号不能省略var sum = a + b;console.log(sum);

在解析时,会自动补上分号;

但是,并不是在所有换行处都会自动填补分号:只有在缺少了分号就无法正确解析代码的时候,才会填补分号,即当前语句和随后的非空格字符不能当成一个整体来解析的话,其他情况不会,如:

var aa=5console.log(a);

通常来说,如果一条语句以“( [ / + -”开始,那么它极有可能和前一条语句合在一起解析,在某些情况下,可以在语句前加上一个分号,确保前面的语句被修改或分号被误删除,当前也会正确的解析,如:

var x = 0;  // 这里可以省略分号;[x,x+1,x+2].forEach(element => {  // 前面的分号确保了正确地解析语句    console.log(element);});

另外,还有一种特殊情况,就是涉及return、break和continue语句,如果其后不带分号,会强制填补;

function fun(){    return    false;}console.log(fun());  // undefined

虽然语句的结尾的分号不是必需的,但强烈建议任何时候都不要省略它,原因在上面已经讲过了;另外,在实际场景中,可以通过删除多余的空格来压缩ECMAScript代码,比如:jquery.min.js文件(如果没有分号,压缩就会出错错误);

另外,加上分号也会在某些情况下增进代码的性能,因为这样解析器就不必花时间推测应该在哪里插入分号了;另外,也会增强代码的可读性和整洁性。

二.关键字和保留字:

ECMA-262描述了一组具有特定用途的关键字,其就是具有特殊含义的单词,这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等;按照规则,关键字也是语言保留的,不能用作标识符;今后的学习中会慢慢讲解。

break、do、instanceof、typeof、case、else、new、var、catch、finally、return、void、continue、for、switch、while、debugger、function、this、with、default、if、throw、delete、in、try

ECMA-262还描述了另外一组不能用作标识符的保留字,尽管保留字在这门语言中还没有任何特定的用途,但它们有可能在将来被用作关键字:简单来说,就是JS还没有使用,但保不齐今后会使用。

abstract、enum、int、short、Boolean、export、interface、static、byte、extends、long、super、char、final、native、synchronized、class、float、package、throws、const、goto、private、transient、debugger、implements、protected、volatile、double、import、public、let、yield

如果使用了关键字作标识符,会导致“”错误;而使用了保留字标识符有可能会也有可能不会导航相同的错误,取决于特定的引擎;

另外,第5版还对eval和arguments增加了限制,在严格模式下,这两个名字不能作为标识符或属性名,否则会抛出错误。

注:这些保留字不需要特别去记忆。

Web前端开发之JavaScript-零点程序员-王唯

标签: #压缩后jquery语法错误 #jquery基础语法