《JavaScript高级程序设计》(第三版)读书笔记-第三章 基本概念
3.1 语法
3.1.1 区分大小写
javascript中的一切都区分大小写。
3.1.2 标识符
标识符指变量、函数、属性的名字,或者函数的参数。
组成:第一个字符必须是字母、下划线或$;剩下的可以是字母、下划线、$或数字。
按惯例采用驼峰大小写格式,第一个字母小写,剩下的每个单词的首字母大写。
3.1.3 注释
单行注释://
块级注释:/*
*/
3.1.4 严格模式
ECMAScript5引入的概念,对于一些ECMAScript3不确定的行为得到处理,对于不安全的操作抛出错误。
"use strict"
3.1.5 语句
分号结尾。使用代码块更方便安全。
3.2 关键字和保留字
一组特定用途的关键字。保留字是可能在下几个版本中有特定用途,不能用来当作标识符。
3.3 变量
JS中变量是松散类型的,可以用来保存任何类型的数据。每个变量仅仅是保存值得占位符而已。
用var定义的变量变成该变量作用域中的局部变量。不用var会定义为全局变量,但是在严格模式下不用var定义变量会导致错误。
3.4 数据类型
5种简单数据类型(基本数据类型),:Undefined、Null、Boolean、Number、和String。(实际检测出来的都是小写的。)
1种复制数据类型:object。
3.4.1 typeof操作符
检测给定变量的数据类型,语法typeof message
"undefined"-如果这个值未定义;
"boolean"-如果这个值是布尔值;
"string"-如果这个值是字符串;
"number"-如果这个值是数字;
"object"-如果这个值是都对象或者null;
"function"-如果这个值是函数。
3.4.2 Undefined类型
只要一个值undefined。声明未被初始化的变量或者未被声明的变量会默认为undefined,但是未被声明的变量只能执行typeof这一项操作,执行其他会返回错误。
3.4.3 NUll类型
只有一个值null。表示一个空对象指针。保存对象的变量还没有真正的保存对象,让该对象保存null值。
3.4.4 Boolean类型
值true和false。调用转型函数Boolean()可以把其他类型转换成Boolean值。
3.4.5 Number类型
采用IEEE754格式来表示整数和浮点数值。八进制、十六进制、十进制。
1.浮点数值 科学记数法e代表10
2.数值范围 Number.MIN_VALUE 大多数游览器为5e-324;Number.MAX_VALUE 大多数游览器为1.79769313486231157e+308
如果超出范围Infinity(正无穷)-Infinity(负无穷)isFinite()函数,如果参数位于最小与最大值之间会返回true。
3.NaN
非数值。任何涉及NaN的操作都会返回NaN;NaN与任何值都不相等,包括NaN本身。isNaN()函数检测是不是能转换成数值。
4.数值转换
Number()、parseInt()和parseFloat()。Number()可以用于任何数据类型(null和空字符转换成0),后俩个专门用于把字符串转换成数值(空字符转换成NaN)。
3.4.6 String类型
由零个或者多个16位Unicode字符组成,单栓引号无影响。
1.字符字面量
转义序列,非打印字符。当作一个字符来解析。常用的有\n 空格 \r 回车等等。
2.字符串的特点
字符串是不可变的,要变就要销毁原先的字符串,用另一个新的字符串填充该变量。
3.转换为字符串
几乎每个值有toString()方法,返回相应的字符串表现,但是null和undefined没有这个方法。可以含参数代表输出数值的位数。
所有值的话可以执行转型函数String()。
3.4.7 object类型
对象就是一组数据和功能的集合。
3.5 操作符
算数操作符、位操作符、关系操作符和相等操作符。
3.5.1 一元操作符
只能操作一个值的操作符叫做一元操作符。
1.递增和递减操作符
++age;--age;age++;age--;后置与前置的区别在于操作在包含他们的语句被求值之后进行。
2.一元加或减
代表正负数。
3.5.2 位操作符
1. 按位非(NOT) ~
2. 按位与(AND)&
3. 按位或(OR)|
4. 按位异或(XOR)^
5. 左移(<<)
6. 有符号右移(>>)
7. 无符号右移(>>>)
3.5.3 布尔操作符
1.逻辑非 !
2.逻辑与 &&
3.逻辑或 ||
3.5.4 乘性操作符
乘法* 除法* 求模%
3.5.5 加性操作符
+ -
3.5.6 关系操作符
< ;>; <= ;>=.
3.5.7 相等操作符
1.相等和不相等 ==;!=。强制转型。null和undefined相等。
2.全等和不全等 ===;!==。不转换。null和undefined不全等。
3.5.8 条件操作符
variable=boolean_expression?true_value:false_value;
3.5.9 赋值操作符
=
3.5.10 逗号操作符
3.6 语句
3.6.1 if语句
if(condition){}else{}
3.6.2 do-while
do{}while()
3.6.3 while语句
while(){}
3.6.4 for语句
for(;;){}
3.6.5 for-in
遍历属性 for(property in expression){}
3.6.6 label语句
添加标签 label:statement
3.6.7 break 和continue
控制代码执行,break跳出停止继续之后的代码,continue跳出继续循环,可以与label连用。
3.6.8 with语句
简化多次编写同一个对象的工作,严格模式下显示错误。
3.6.9 switch语句
switch(){
case value:statement
break:
case value:statement
break:
...
default:statement
}
3.7 函数
function声明,不必指定需要返回值,任何函数可以通过return语句后跟要返回的值实现,但是会执行完return后退出,位与之后代码不会被执行。return可以不带 任何返回值,会返回undefined。
3.7.1 理解参数
参数命名只提供便利不是必须的,通过arguments对象来访问参数数组。arguments.length得到多少个实参。
3.7.2 没有重载

浙公网安备 33010602011771号