第三章 基本概念
3.1 语法
- 区分大小写
- 严格模式
- "use strict";
- 这其实是一个编译指示(pragma),用于告诉支持的js引擎切换到严格模式。
- 也可以单独指定一个函数在严格模式下执行
- 语句
- 分号代表一句话的结束
- 分号不是必须的,但是推荐加上
3.2 关键字和保留字
- 一个原则,就是不要使用
3.3 变量
-
ECMAScript的变量是松散类型的
-
也就是可以保存任何类型的数据
-
也就是说仅仅是一个保存值的占位符而已
-
定义变量时需要使用关键字var操作符
-
var 操作符定义的变量将成为定义该变量的作用域中的局部变量
-
不使用var定义的是一个全局变量,但并不推荐使用
-
即便js是松散类型,可是也不推荐一个变量不停地切换保存的数据类型
3.4 数据类型
-
js有六种数据类型
- 五种简单数据类型: Undefined, Number, String, Boolean, Null
- 对象 Object
-
typeof操作符
- 检测给定的变量的数据类型
- 是一个操作符,而非函数
-
Undefined类型
- 此类型只有一个值,即特殊的undefined
- 一个变量未初始化和未定义使用typeof检测得到的结果是一样的,都是"undefined"
- 一种好的编码风格是,当遇到变量时就对其进行初始化,这样遇到"undefined"后就知道此变量未定义了
-
Null类型
- 第二个只有一个值得数据类型,即特殊的null
- null值表示一个空对象指针
- 在要定义一个对象时,一般会初始化为null,这一点和undefined有很大区别
-
Boolean类型
-
有两个字面值:true和false
-
是区分大小写的
-
其他类型的值可以转换成Boolean,并且存在自动转换
数据类型 转换为true值 转换为false的值 Boolean true false String 任何非空字符串 ""(空字符串) Number 任何非零数字值 0和NaN Object 任何对象 null Undefined n/a(not applicable的缩写,不适用的意思) undefined
-
-
Number类型
- 整形(十进制、八进制、十六进制)
- 浮点数
- NaN
- 数值转换
- Number() -- 比较复杂,且不够合理
- parseInt()
- parseFloat()
- 这几个方法用好了功能还是很强大的
-
String类型
- 字符字面量
- 字符串的特点,是不可变的。变得是变量
- 转换为字符串
- .toString()方法
- String()函数
-
Objece类型
- 对象就是一组数据和功能的集合
- 通过new操作符后跟要创建的对象类型的名称来创建
- 每个Object对象具有的属性和方法
3.5 操作符
- 操作符的类型
- 一元操作符
- 自增、自减运算符(++、--)
- 一元加减运算符(+、-)
- 位操作符
- 位运算(~ & | << >> >>>)
- 布尔操作符
- 逻辑与、或、非(&&、||、!)
- 乘性操作符
- 乘法 *
- 除法 /
- 求模 %
- 加性操作符
- 加法 + (注意字符串的加法)
- 减法 - (注意字符串的减法)
- 关系操作符
- 小于 <
- 大于 >
- 小于等于 <=
- 大于等于 >=
- 相等操作符
- 相等和不相等(== !=)
- 全等和不全等(=== !==)
- 条件操作符
- ?: (这是一个三元运算符)
- 赋值操作符
- =
- 复合赋值操作符(+= -=等等)
- 一元操作符
- 涉及到的常使用的方法
- Boolean()
- Number()
- valueOf()
- toString()
- 需要注意的地方
- 类型转换
- NaN == NaN 返回false
- null == undefined true
3.6 语句
- if语句
- 建议即使是简单的执行语句,也是用{}包裹起来的代码块
- do...while语句
- 后测试循环语句(先执行后判断)
- while语句
- 前测试循环语句(先判断后执行)
- for基本循环语句
- for in
- label
- continue
- break
- with
- 由于效率问题不建议在大型项目开发中使用
- switch语句
3.7 函数
- 关键字 function、return
- return 可以有返回值,也可以没有
- 建议在写函数时保持统一的风格,要么都写上return,要么都不写,这样会便于调试
- return之后的语句将永远不会再执行了
- 函数参数
- 函数参数无限制,用一个argument数组来接收传递过来的参数,所以对个数没有限制,这可以变相的理解成函数的重载
- js中函数没有真正的重载,而是选择后定义函数
网友评论