美文网首页
javascript高级程序设计 读书笔记

javascript高级程序设计 读书笔记

作者: 就在海角天边 | 来源:发表于2016-01-12 18:52 被阅读0次

读书笔记

基本概念

语法

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表示希腊字符Σ

相关文章

网友评论

      本文标题:javascript高级程序设计 读书笔记

      本文链接:https://www.haomeiwen.com/subject/vklckttx.html