变量:
区分大小写
标识符的第一个字符必须是字母或_或$
"use strict"启用严格模式
-
变量定义:
使用 var定义局部变量,如 var message;
不用var定义的变量为全局变量.
变量的赋值并不会给这个变量指定类型.如var message="hi"; message=10;是
可以的.可以一次定义多个不同类型的变量: var
message="hi",found=false,age=20;中间用逗号隔开就行.
数据类型:
基本数据类型:Undefined Null Boolean Number String
复杂数据类型:Object
检测变量类型的typeof操作符: typeof(变量名)或typeof 常量 括号不是必须的
typeof的返回值:
undefined 变量未被初始化
boolean 变量是布尔
string 字符串
number 数值
object 对象或null
function 函数
Undefined类型:
未被初始化和未被定义的变量的值都是undefined.
var message; (message==undefined)
typeof age (age未被定义,但返回undefined)
Null类型:
只有一个值null,用来表示空对象
Boolean类型:
只有两个字面值:true和false.但所有类型的值都可以通过转型函数Boolean()转换为对应的Boolean值.
数据类型 | true | false |
---|---|---|
String | 非空字符串 | 空字符串("") |
Number | 非零值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | n/a | undefined |
Number类型:
8进制整数字面值以0开头.如 var num=070;
16进制整数字面值以0x开头,如 0xA
科学计数法: var num=2.4e10
注意不要测试某个特定的浮点数值(0.1+0.2==0.3 是false)
超出数的范围的数会被转换成 Infinity.通过isFinite()函数可以检测是否为Infinity.
NaN是一个特殊的数,在试图将一个不能转换为数值的量转换为数值时就会得到NaN.任何涉及NaN的操作(如NaN/10)都会返回NaN.而且,NaN与任何值都不相等,包括NaN本身.可以通过isNaN()函数检测是否能一个量能转换为数值.
数值转换:
有3个函数可以把非数值转换为数值:Number(),parseInt()和parseFloat().
Number()函数转换规则:
Boolean | 0和1 |
---|---|
null | 0 |
undefined | NaN |
"123" | 123 |
" 123 " | 123 |
"0123" | 123 |
"0 123" | NaN |
"123a" | NaN |
"0xf" | 15 |
parseInt()函数转换规则:
"123ab" | 123 |
---|---|
"ab123" | NaN |
"12 23" | 12 |
"010" | 8 |
"0xA" | 10 |
String类型:
单引号和双引号都可以用来表示字符串.
length属性获取长度:如text.length
字符串是不可变的.
例如 var lang="Java" ; lang=lang+"Script";
新的lang是产生一个新的lang和"Script"的字符串
将量转化为String的方法:
量.toString()可以将量转化为String.但null和undefined没有这个方法.
特别的,当量是数值时,可以使用一个基数作为参数来输出相应的进制.
如: var num=10; num.toString(16)转化为"a".
如果不知道是不是null或undefined,可以使用String(),它可以将null或undefined转化为"null"或"undefined".
除此之外,还可以用 量+"" 来转化为字符串,对null和undefined也有效.
Object类型:
Object是所有其它Object的基础.
每个Object都有以下几种属性和方法:
constructor:保存着构建函数
hasOwnProperty(propertyName):检查给定属性是否存在
isPrototypeOf(object):检查给定对象是否是当前对象的原型
toLocaleString()和toString: 返回字符串表示
valueOf: 返回对象的字符串,数值或布尔值.通常与toString()结果相同.