版权声明:随意转载 https://blog.csdn.net/bigcupwater/article/details/77935292
- 基本语法
- 标识符,由字母、数字、下划线“_”、美元符号“$”组成,数字不能开头,采用驼峰大小写格式。不可以使用关键字和保留字以及包含特殊意义的字符串(true、false、null)。
- 注释,// 单行注释; /*…….*/多行注释.
- 严格模式,为JavaScript定义了一种不同的解析与执行模型。启动严格模式: “use strict” 该模式下执行结果会由很大差异。
- 语句,省略结尾的分号,解析器会推测语句结尾。必须写上避免错误。
- 变量
- 变量类型为松散类型,即可以保存任何类型的数据。每个变量仅仅是一个用于保存值的占位符而已。
- 定义方式:var 变量名。 若省略var,变量会变为全局变量(不推荐使用)。
- 在严格模式下,不能定义 eval 或 arguments 的变量,否则会导致语法错误。
数据类型
- 五种简单数据类型,Undefined、Null、Boolean、Number、String;一种复杂数据类型,Object。
- typeof 操作符,检测给定变量的数据类型,返回值含义:
- undefined,如果这个值是定义但未初始化的,或者是未定义的
- boolean,这个值是布尔值
- String,这个值是字符串
- number,这个值是数值
- object,这个值是对象或 null
- function,这个值是函数
- Undefined类型: 只有一个值,就是undefined。在使用 var 声明变量但是未对其加以初始化时。
Null类型: 表示一个空对象指针。只有一个特殊值为null。
undefined派生自null,null == undefined 为 true 。无论何时都不需要把一个变量值显式的设置为undefined,但是若准备保存对象的变量还没有真正保存对象就明确让该变量保存 null(空指针) 值。
- Boolean类型: 只有两个字面值,true 和 false。调用 Boolean()函数可以将一个值转换为对应的Boolean的值。
- Number类型: 保存数值字面量,整数和浮点数。
- 保存浮点数的空间是整数的两倍
- 浮点数计算会产生舍入误差的问题,这是IEEE754数值的浮点计算的通病。所以永远不要测试某个特定浮点数值
- 能表示的最小值:Number.MIN_VALUE = 5e-324;最大值为Number.MAX_VALUE。
- 若计算结果超过范围,将被自动转换为诶特殊 +/-Infinity (无穷)值。使用 isFinite()可以确定数值是否有穷。
- NaN,特殊数值。用于表示本来要返回数值的操作数未返回数值的情况。NaN值与任何值都不相等,与自身也不相等。IsNaN()函数可以确定一个值是否可转换为数值类型,不能返回true,否则返回false。
- 将非数值转换为数值函数:Number(),可以用于任何数据类型;parseInt() 和 parseFloat() 专门把字符串转换为数值类型。
- String类型: 保存字符串,用双引号或者单引号表示。length表示字符串长度,但是若包含双字节字符,返回结果不精确。字符串创建不可改变。可以调用toString()转换字符串,null和undefined没有这个方法。
- Object类型: 使用语法与Java创建对象类似。
- 操作符
- 一元操作符:递增和递减,前置是先算再用,后置是先用后算。
- 位操作符:~ 取反,按位非操作本质:操作数的负值减一;& 与操作,| 或操作,^ 异或操作; << 左移操作(不会影响符号位), >> 有符号右移操作(保留符号位), >>> 无符号右移(会影响符号位)。
- 布尔操作符:! 逻辑非,&& 逻辑与,|| 逻辑或。
- 基本操作符: + 、- 、 * 、 / 、 % 。
- 相等操作符: 相等和不相等,先转换再比较。全等和不全等,再两个操作数未经转换就比较。推荐使用全等和不全等。
- 条件操作符: a = (表达式) ? 语句1: 语句2;
语句
- if 、 if else 、 do-while 、 while 、for 、switch 、 break 、 continue。
- for-in 语句,一种精准的迭代语句,可以用来枚举对象的属性。
- lable 语句,为代码添加标签,一般配合for循环使用。
- with 语句,简化多次编写同一个对象的工作
var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href; // 等价为 with (location) { var qs = search.substring(1); var hostName = hostname; var url = href; }
- 函数
- 使用关键字 function 来定义,后跟一组参数和函数体。
- 函数不介意传递进来几个参数,定义时为两个,使用时可以传递一个、三个甚至不传递参数。因为JavaScript中的参数在内部是用一个数组来表示的,函数接受到的永远是这个数组。可以通过aguments对象来访问这个参数数组。arguments对象的长队是由传入的参数个数决定的。
- JavaScript中所有参数传递都是值,不可能通过引用传递参数。
- JavaScript没有函数重载。