前奏:在HTML中使用JavaScript
1_推荐src引用外部JavaScript文件,方便管理与维护,标签位置在页面最下面,使浏览器更优先加载页面内容。
2_HTML页面需要有标准的文档类型申明DOCTYPE,否则会触发混杂模式,页面非常容易出错。
3_考虑禁用JavaScript的场景。
...
//当浏览器不支持javascript或被禁用时,会呈现<noscript>标签内的内容。 <noscript> <p>本页面需要浏览器支持JavaScript.</p> </noscript> </body>
1. 基本语法
1. ECMAScript中的一切(变量,函数名和操作符)都区分大小写。
2. 标识符命名: 首字符必须字母,下划线或$美元符号,数字不能在第一个。(关键字和保留字不能作为标识符)
3. 严格模式 “use strict” 定义了一种要求更高的解析和执行模型
function
doSomething(){ "use strict" //函数体 }
2. 数据类型
数据类型分为基本类型和复合类型。
基本数据类型:number,boolean 、string 、null和 undifined。
number | 整型或浮点型 |
boolean | 布尔类型,true或false (注意区分大小写,必须都为小写时才是) |
string | 字符串,单双引号都可以 |
null | 表示一个空对象指针, |
undefined | 变量申明未定义时为undefined, |
object | 数据和功能的集合 |
number类型
1. 八进制在严格模式下无效,十六进制前两位必须为0x,计算式都将转换为十进制
2. 取值范围,使用全局isFinite()函数判断是否超出范围,如果在范围内则为true,如果在范围外则为false.
3. NaN和isNaN()
NaN是number类型,但不是数字,一旦程序中出现了NaN,说明出现了问题,
NaN的布尔属性为false,NaN和任何值都不相等,包括NaN本身。
任何涉及NaN的操作都会返回NaN。
isNaN()
里面的数据首先通过number()方法转换,
如果能够转为数字,则isNaN()为 false。
如果不能转为数字,则isNaN()为true。
4.数值转换
boolean类型
Boolean类型只有:true和false。注意区分大小写,其它形式的都不是,例如True和False.
1. 任何一种数据类型的值都能转换为与其相对应的Boolean值,转换方式主要有三种:
显示转换:转型函数Boolean()
隐式转换,比如条件语句if
2.在转换为数值时,true和false分别转换为1和0,转换为字符串时,分别为‘true‘和‘false‘。
3.Boolean类型的true和false,使用typeof时,均返回字符串‘boolean‘。
string类型
1.隐式转换,任何一个数值与字符串相加,都会将其使用String()转换成字符串,然后将两个字符串合并。
2.显示转换String(),
3.字符串使用反斜杠“\”来转义,常见的转义字符:
字面量 | 含义 | 字面量 | 含义 | 字面量 | 含义 |
\n | 换行 | \t | 制表 | \b | 空格 |
\r | 回车 | \f | 进制 | \\ | 反斜杠 |
\’ | 单引号 | \” | 双引号 | ||
\xnn | 以十六进制代码nn表示的一个字符 | \unnnn | 以十六进制代码nnnn表示的一个Unicode字符 |
null和undefined区别
null |
undefined |
|
表示 | 空对象指针 | 尚未定义的变量 |
typeof运算结果 | object | undefined |
undefined派生null,使用==判断为true | undefined派生null,使用==判断为true | |
如果定义变量准备在将来保存对象, 那么最好将变量初始化为null. |
无论申明情况下后没有必要将一个变量显示设置为undefined. |
这五种基本数据类型可以直接操作保存在变量中的实际值。
基本数据类型都保存在内存中的栈区。
引用(复合)数据类:javascript引用数据类型是保存在堆内存中,JavaScript不允许直接访问堆内存空间中的位置和操作堆内存空间,只能通过操作对象在栈内存中的引用地址。
所以引用类型的数据,在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存在堆内存中的对象。
引用类型是可以添加属性,基本类型虽然也可以添加属性,也不会报错,但是却无法访问。
原文:http://www.cnblogs.com/Peng2014/p/4706005.html