读书笔记
基本概念
语法
1、区分大小写
2、标识符(变量、函数、属性的名字、函数参数),第一个字符必须是字母、下划线或$,其他字符可以有数字
3、注释:C风格, // 单行 /**/ 多行
4、use strict 严格模式
5、语句分号结尾
变量
定义单个变量 var a=1;
定义多个变量 var a=1,b="aaaa",c=true;
数据类型
基本数据类型:undefined、null、number、string、boolean,复杂数据类型:object
判断数据类型:typeof(是操作符,不是函数)
undefined 这个值未定义
number 数值
string 字符串
boolean 布尔值
object 对象或者null
function 函数
undefined类型
类型只有一个值,即undefined,在使用var声明变量但未初始化时,值就是undefined
null类型
类型只有一个值,即null,是一个空对象指针
number类型
十进制:55
八进制:以0开头,八进制在严格模式下无效,会导致支持的javascript引擎抛出错误
var a=070 // 八进制的56
var a=079 // 无效的八进制,解析为79
var a=08 // 无效的八进制,解析为8
十六进制(以0x开头)
var a=0xA // 十六进制的10
浮点数
var a=1. // 解析为1
var a=1.0 // 解析为1
var a=3.14e7 // 解析为3.14x10的7次幂,31400000
var a=3e-7 // 解析为0.0000003
因为采用的是IEEE754标准,所以0.1+0.2 != 0.3,0.02+0.25 == 0.3
数值范围
Infinity //正无穷,可以用Number.NEGATIVE_INFINITY
-Infinity //负无穷,可以用Number.POSITIVE_INFINITY
Number.MIN_VALUE //ECMAScript能表示的最小值,值为5e-324
Number.MAX_VALUE //ECMAScript能表示的最大值,值为1.7976931348623157e+308
isFinite() //检测值是否位于最大值与最小值之间
NaN
NaN是一个特殊的值,用于表示本来要返回数值的操作未返回数值的情况(这样就不会抛出错误了),例如任何数除以0,不会返回错误,会返回NaN
NaN两个特点:
1、任何涉及NaN的操作都会返回NaN
2、NaN与任何值都不想等,包括NaN本身
isNaN() 接受的值如果能转化成数字返回false,如果不能返回true
isNaN(NaN) // true
isNaN(10) // false
isNaN("10") // false(可以转换成10)
isNaN("blue") // true
isNaN(true) // false(可以转换成1)
类型转换
Number() 用于用于任何数据类型的转换
parseInt()和parseFloat() 专门用于字符串转转换
Number() 规则:
1、Boolean类型,true返回1,false返回0
2、Number类型,简单的传入和返回
3、null,返回0
4、undefined,返回NaN
5、如果是字符串:
如果只包含数字,直接转,前导0忽略
如果是浮点格式,直接转,前导0忽略
如果是十六进制,入“0xf”,直接转,前导0不忽略
如果字符串是空,返回0
如果字符串包括上述格式之外的字符,返回NaN
6、如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值,如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串的值
var a=Number("hello world); // NaN
var a=Number(" "); // 0
var a=Number("0000123"); // 123
var a=Number(true); // 1
parseInt() 规则:
1、如果第一个字符不是数字或者负号,则返回NaN
2、从第一个字符开始解析,直到解析完所有后续字符或者遇到了一个非数字字符,小数点不是有效的数字字符
3、ES3“070”被当成八进制,会被转成十进制的56,ES5已经不具有解析八进制的能力,会被当成70
4、parseInt() 第二个参数为转换时使用的技术(按什么进制解析)
parseFloat() 规则:
1、如果第一个字符不是数字或者负号,则返回NaN
2、从第一个字符开始解析,直到解析完所有后续字符或者遇到了一个非数字字符,第二个小数点不是有效的数字字符
3、十六进制返回0
4、只能按十进制解析,因此没有第二个参数
5、忽略前导0
String类型
由零个或多个16为Unicode字符串组成的字符序列,即字符串
单引号和双引号的解释方式相同
转义序列:
\n 换行
\t 指标
\b 空格
\r 回车
\f 进纸换页
\\ 斜杠
\' 单引号
\" 双引号
\xnn 以十六进制代码nn表示的一个字符(n为0-f),\x41表示为A
\unnn 以十六进制代码nnnn表示的一个Unicode字符(其中n为0-f),\u03a3表示希腊字符Σ
网友评论