《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 没有重载

posted @ 2017-05-17 01:13  moon小夫  阅读(173)  评论(0)    收藏  举报