第3章
1.对象是属性的集合,属性有名/值对构成。(数组、函数是特殊的对象)
2.js类:数组类、函数类、日期类、正则类、错误类。
3.负号是一元求反运算符,并不是数字直接量语法的组成部分。
4.16进制的前缀是0X或者0x
5.全局变量 Infinity NaN
6.判断x是否为NaN:x!=x此表达式只有当x是NaN时才为ture。NaN和任何值都不相等,包括自身。
7.二进制浮点数表示法并不能精确的表示类似0.1这样的数字。
8.Date()的月份是从0开始的,1月份表示为0;字符串的位置也是从0开始的,第一个字符的位置索引是0.
9.js和html中使用不同的风格表示字符串,js中使用双引号,html中事件处理程序使用单引号。
10.js中字符串是固定不变的类型,类似replace()和toUpperCase()这样的方法是返回新的字符串,原字符串并没有变。
11.js的任意值都可以转换为布尔值,被转换为false的值(6):undefined null 0 -0 NaN “”。 其他值全部转换为ture。
12.null==undefined的值为ture;null===undefined的值是false;
13. 全局属性:undefinedInfinity NaN
全局函数:isNaN() parseInt() eval();
构造函数:Date() RegExp() String() Object() Array()
全局对象:Math和Jason
14.读取字符串、数字、布尔的属性值时,他们会表现的跟普通对象一样;但是你试图给其赋值,则会忽略这个操作,因为他们只是发生在临时对象上,而临时对象使用完后随机销毁。
15.对象的比较并非值的比较,当且仅当对象的引用基于同一个对象时,两个对象才相等。
16.如果“+”运算符的一个操作数是字符串,则会把另一个操作数转换为字符串;x+“”;
一元“+”运算符,将其操作数转换为数字。+x
一元“!”运算符,将其操作数转换为布尔值并去反。
17.null和undefined不会转换为对象,否则会报错。
18.null==undefined “0”==0 0=false “0”==false
19.一个值转换为另一个值,并不意味着他们相等。Undefined转换为布尔值是false,但是undefined不等于false。
20.对象转换为原始值——对象转换为字符串、对象转换为数字。
21.”+”\”==”\”!=”号把日期对象转换为字符串。”-“\”>”号把日期对象转换为数字类型。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++3.8类型转换(后半部分比较模糊,可以多看两遍)
22.在函数体内,局部变量的优先级高于同名的全局变量。
23.声明局部变量时必须使用var,否则视为声明全局变量,或者修改全局变量(同名时)
24.js特有函数声明方式:将函数内的变量声明提前至变量的顶部,同时变量初始化留在原来的位置,(也就是说在函数体内,如果使用函数体内声明并初始化的变量,使用语句在初始化之前,返回的值是undefined)。
25.console.log()是在控制台输出的意思,用来调试程序,不会打断程序。
26.使用var声明一个变量时,这个变量是不能用delete删除的。不使用var赋值的变量和使用this声明的变量是可以用delete删除的