JavaScript 编程精解-学习1

最近,时间比较充足,看了下 JavaScript 编程精解这本书,感觉还不错,就做了下笔记。

第一章 值、类型和运算符

1.1 值

javaScript 中包含6中基本数据类型:数字(number)、字符串(string)、布尔值(boolean)、对象(Object)、函数(function)和未定义类型(undefined)。

1.2 数字

javaScript 使用固定长度64的位序列,2的64次方,使用负数时,其中一位符号位用来表示数字的政府,还有需要使用一些位来存在小数点的位置。

1.2.1 算术

四次运算:加减乘除,javaScript 的表达方式如下

100 + 4 * 3 / 2 % 1

javaScript 中 “%” 为取余数,例如 3 % 2 = 1 余数是1。"%" 取余符号,还习惯性被称为模数预算符。

1.2.2 特殊数字

在 JavaScript 中还有三个特殊的值,分别为 无穷大、无穷小、非数值,分别用 Infinity、-Infinity、NaN 表示,其中 NaN 一般为运算后表示无意义的值,如 0/0、Infinity - Infinity 或者运算不精确的和毫无意义的值

1.3 字符串

使用单引号或双引号将内容包含起来的的数据表示字符串,表文本信息。

'zhe shi yi ge zi fu chuang'

字符串中,只能放一行,所以换行符(输入回车键所产生的字符)也无法放在引号之间。

使用换行符这种特殊字符,需要使用转义字符(\)反斜杠来追加在前,如 “\n” 表示换行(相当于回车键), “\t” 表示制表符(相当于tab键)。如果你要输出 “\n” 就需要把转义字符 " \ " 转成字符串,使用\\ ,所以要打出 “\n” 就需要用 \\n

字符串可以用 “+” 运算符,表示拼接字符,如下列例子

"e" + "s" + "haha"
// 输出就是 eshaha

1.4 一元运算符

一元运算符并非符号,而是单词, typeof 运算符表示输出变量或者值的类型。如

console.log(typeof 4.5)
// 输出 number 类型

其中,console.log() 是JavaScript 内置的一个输出语句,查看可以看控制台,游览器的开发者模式下 可看。window系统下一般按 F12,然后选择控制台(console)便可输入语句。

javascript解写 javascript编程精解_编程精解

1.5 布尔值

用于判断是非的类型,只有两个值,true 和 false 分别表示真和假。

1.5.1 比较

“>” 和0 “<” 分别表示 “大于” 和 “小于” , 这两个是二云运算符。在这里顺便说下,对一个数据操作的运算符称为一元运算符,两个数据的操作运算称为二元运算符。

通过 “>” 和 “<” 可以得到布尔值,如下例子:

console.log(3 > 2)
//-> true

字符串的比较是按照字符顺序进行比较,大写字符总是大于小写字符,“Z > z” 为真,底层实际上是通过 Unicode 值进行比较。

其他类似运算符 “>=”(大于等于)、 “<=”(小于等于)、""(等于,不判断类型)、"!=(不等于,不判读类型)"、"="(等于,判断类型)、"!=="(不等于,判断类型)

1.5.2 逻辑运算符

JavaScript 支持三种逻辑运算符:与(&)、或(|)、非(!)

与: 两个都成立返回真,或 两者其中一个成立返回真,非 返回条件的相反情况。 其中 与 还可以用 && 表示,或可以用 || 表示,&& 与 & 区别在于,前者只要第一个参数为 false 马上就停止判断返回 false,后者会执行全部条件再返回判断的值。|| 也是同样道理,建议使用双符号。

console.log(true && false)
// false
console.log(true || false)
// true
console.log(!true)
// false

双符号引起的短路特性

&& 只要左侧不成立,立马停止后者判断

|| 只要左侧成立,立马停止判断

介绍 JavaScript 特殊情况,当 空值(null)、数字零(0)、未定义值(undefined)、NaN 作为条件时,即条件为 false, 其余的默认为 true

false && X // X 不会被执行
true || Z // Z 不会被执行
console.log(“zxh” || "user") // 打印 “user”
var value = NaN || "user" // value = "user"

|| 运算符,可用于返回默认值,如果左侧值为false时,返回右侧值。&& 运算符,则表示左侧值为 false 时,则返回左侧值,否则返回右侧值

1.6 未定义值

未定义值有 null 和 undefined,前者表示已经声明变量未实例,后者表示变量都还没声明。

1.7 自动类型转换

当运算符作用在错误类型的值上时,JavaScript 会自动将其转换成自己期望的类型,成为强制类型转换。如下

console.log(8 * null)
// 打印 0 理由 null 被转为 0,一般转为数字型,看那个值在条件下是true 或 false,true 的话转数字为 NaN 或其他,false 转数字为 0
console.log("5" - 1)
// 打印 4 ,理由 字符串5被转为数字5
console.log("5" + 1)
// 打印 51  理由 字符串拼接
console.log("fas" + 1)
// NaN   fas 不能为转为对应数字
console.log(null == undefined)
// true
console.log(null == 0)
// false
console.log(undefined == 0)
// false

== 运算符判断,比较特殊,建议使用 === 或者 !==