1. JavaScript基础
1.1 语法
严格区分大小写
标识符,第一个字符可以是 $,建议使用小驼峰法,
保留字、关键字、true、false、null不能作为标识符
JavaScript是用Unicode字符集编写的
1.2 数据类型
判断数据类型:
typeof xxx
-
定义变量:
var xxx = yyy; 函数内部不加var可以定义全局变量
可以随意改变类型var a,b,c; 定义多个变量
-
Number 类型:
包括整数和小数
var n=0x111;//十六进制 var n=1.2e2;//科学计数法 var n=1.0 //n=1,因为JavaScript会尽量把浮点数转换为整数,因为浮点数占的内存是整数的两倍
alert(Number.MAX_VALUE) 支持最大数,MIN_VALUE最小
alert(Numver.Infinity) 无穷大
NaN(Not A Number)非法数字,不是数字,可以通过
isNaN(xx)
判断,返回Boolean值alert('哈' - 1) => NaN
-
String 类型: 'xxx' " t'ttt "
\xnn 以十六进制代码nn表示一个字符,如:\x41表示A
\unnnn 以十六进制代码nnnn表示一个Unicode字符
除了 null undefined 外的所有值都有toString()方法,可以把相应的值转换为字符串形式
-
Boolean 类型:
-
通过Boolean(xxx) 转换,== 判断不出
true:非零数值,非空字符串,非null对象
false:0 空字符串,Null,Undefined
在流程控制语句(如:if),会自动转换为Boolean值
-
-
Undefined 类型:只有一个值undefined(开头字母小写),表示变量未初始化
var s;alert(s) //undefined
主要用于逻辑判断
alert(typeof xx(未定义变量) ) //也会是undefined
-
Null类型:只有一个值null,表示空对象指针
alert(typeof null) //Object
-
如果定义的变量准备在将来用于保存对象,那么最好把他设置为null,这样就可以判断是否为null来判断是否保存了一个对象的引用
if (xx != null){ doSomething(xx); }
undefined由null衍生出来,undefined == nulll
-
Object 类型:
1.3 数据类型转换
-
toString():
var s=123; s.toString() // '123' 当以字符串形式输出某个对象时,就会自动调用对象内部的toStrong()方法
null和undefined没有toString()方法。'str' + xxx => 'str'
var n=9; n.toString(2);//'1001'
整数变量.toString(进制),可以进行进制转换String(obj)
将任何类型转换为字符串,包括null和undefined
-
Number():
var s='123'; alert(Number(s)) // 123 var s='haha33'; alert(s)// NaN
如果字符串是一个空串或全是空格的字符串,则转换为0
null => 0 undefined => NaN true => 1
-
parseInt()/parseFloat():
从第一位有效数字开始,直到遇到无效数字,如果第一位不是有效数字,返回NaN
Number()函数无论字符串是否包含有效整数都会返回NaN,利用parseInt()/parseFloat()可以提取字符串中的有效整数
parseInt('123aaa') //123
parseInt('100',2) //4
当提供第二个参数时,代表字符串是几进制的,返回十进制
1.4 语句
//【switch语句】
//可以使用任何数据类型
switch(s){
case 'a':
case 'b': //合并了两种情形
alert("a or b");
break;
case 'c':
alert(c);
break;
default:
alert(other)
}
//【for-in语句】
//迭代出的是:数组、字符串是位置、对象是key
for(var x in 'hello'){
console.log('hello'[x]);
}
//【label语句】
//在代码中添加标签,可以由break 或 continue引用
xxx:
for(var i=0; i<10; i++){
if(i==8){
break xxx;
}
}
//【with语句】
//作用是将代码的作用域设置到一个特定的对象中
var location = {
name = 'bin'
};
var name = 'out';
with(location){
alert(name);//bin
}
alert(name);//out
1.5 操作符
-
布尔操作符:
-
逻辑非:
-
用
!
表示,可以应用于 ECMAScript中的任何值,无论这个值是什么类型,这个操作符都会返回一个布尔值。逻辑非首先将它的操作符转换成一个布尔值,然后对其求反。! Object => false
! "str" => false
! "" => true
! 0 => true
! num => false (包括Infinity)
! null => true
! NaN => true
! undefined => true
如果连续使用两次
!
,则会模拟 Boolean() 转换函数的行为,!
首先将操作数转换成布尔值再取反,然后!
再取反一次,就相当于把操作数转换成了其对应的布尔值。
-
-
逻辑与:
&&
如果第一个操作数转换成布尔值是false,就返回第一个操作数
如果第一个操作数转换成布尔值是true,就返回第二个操作数
false && alert(1) => false
true && alert(1) => alert(1)
-
逻辑或:
||
与逻辑与相反
false || alert(1) => alert(1)
true || alert(1) => true
-