第三章 基本概念
-
认识语法
1.JavaScript区分大小写
2.标识符。变量,函数,属性的名字。第一个字符必须是一个字母、下划线(_)或一个美元符号($)。其他字符可以是字母、下划线、美元符号或数字。
3.注释分为单行注释,多行注释
4.严格模式。在函数中的使用方法:
function doSomething(){
"use strict";
//函数体
}
5.对于变量的生存周期
了解到JS中的全局变量和局部变量。前者是在函数外声明的变量,后者是在函数内部var声明的变量。
var定义在函数里的是局部变量,当函数退出后会被销毁。
function test(){
var message = "hi"; //局部变量
}
test(); //即使不调用 结果也一样
alert(message); // 错误!message is not defined
简单了解一下闭包就是让函数外部也能访问到局部变量,让函数内部的变量始终存在内存中。
-
数据类型
基本类型:
1.Undefined类型
变量声明后未初始化或初始化未赋值造成。
var message = undefined;
alert(message == undefined); //true
// var age
console.log(typeof age); // "undefined"
2.Null类型
使用typeof 操作符(不是函数)的时候 typeof null 返回的不是 null 而是object。且null == undefined返回是true 。
3.Boolean类型
4.Number类型
采用的是IEEE754格式来表示整数和浮点数值。浮点数就是我们常说的小数。这里我们要知道,因为浮点数在计算机中需要的内存空间时保存整数值的两倍。所以ECMAScript会把浮点数转为整数。所以在转换的过程中会出现精度丢失。如:0.1+0.2 结果不是0.3而是0.30000000000000004。
精度丢失的原因是:
计算机都是0 1 存储。我们用十进制小数转为二进制的过程发现小数转成的二进制产生了循环。计算方式导致类似0.6的小数成为 0.1001100110011001 …… 而IEEE754规定位数是有限的,尽管浮点格式有分为单精度格式、双精度格式,但依然不够。在存储后就看到了保留后的值。
5.String类型
复杂类型 :
1.Object类型
了解到Object类型是所以它的实例的基础。它的每个实例都有以下方法
constructor 构造函数
hasOwnProperty 检查属性是否存在
isPrototypeOf 检查传入对象是否是传入对象原型
propertyIsEnumerable 是否能够用for-in 语句来进行枚举
toLocaleString 返回对象字符串,当位数4位以上或是时间格式时与toString不同
toString 返回对象字符串
valueOf 返回对象字符串,数值,布尔
创建一个对象:
var cat = new Object();//创建一个Object的引用类型的实例