学习文章 http://t.csdnimg.cn/yQii8
基本语法
1.变量
变量的作用是给某一个值或对象标注名称。
声明:使用var关键字声明一个变量。
如:var a;
2.数据类型
数据类型决定了数据的特征
JavaScript中一共有5种基本数据类型:
字符串型(String)
数值型(Number)
布尔型(Boolean)
undefined型(Undefined)
null型(Null)
除此之外的都是对象型(Object)
typeof运算符
使用typeof操作符可以用来检查一个变量的数据类型。
如 console.log(typeof 1); 返回number
console.log
方法用于在控制台输出信息。它可以接受一个或多个参数,将它们连接起来输出。
String
String用于表示字符串,需要使用 ' 或 " 括起来。
转义字符
Number
Number 类型用来表示整数和浮点数,最常用的功能就是用来表示10进制的整数和浮点数。
Number表示的数字大小是有限的,如果超过了这个范围,则会返回 ±Infinity。
特殊的数字:
Infinity:正无穷
-Infinity:负无穷
NaN:非法数字(Not A Number)
Boolean
布尔型也被称为逻辑值类型或者真假值类型。
布尔型只能够取真(true)和假(false)两种数值。
Undefined
Undefined 类型只有一个值undefined。
在使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined。
(typeof对没有初始化和没有声明的变量,会返回“undefined”)
Null
Null 只有一个值 null。
undefined值实际上是由null值衍生出来的,所以如果比较undefined和null是否相等,会返回true。(使用typeof检查null会返回一个Object。)
3.强制类型转换
转换为Sring
tostring
该方法不会影响到原变量,它会将转换的结果返回,但是注意:null和undefined这两个值没有toString()方法,如果调用它们的方法,会报错。
var a = 1;
a = a.toString();
console.log(a);
console.log(typeof a);
String()
调用String()函数,并将被转换的数据作为参数传递给函数,使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法,但是对于null和undefined,就不会调用toString()方法,它会将 null 直接转换为 “null”,将 undefined 直接转换为 “undefined”。
var a = 1;
a = String(a);
console.log(a);
console.log(typeof a);
var b = undefined;
b = String(b);
console.log(b);
console.log(typeof b);
var c = null;
c = String(c);
console.log(c);
console.log(typeof c);
为任意的数据类型+""
var a = 123;
a = a + "";
console.log(a);
console.log(typeof a);
转换为Number类型
有三个函数可以把非数值转换为数值:Number()、parseInt() 和parseFloat()。Number()可以用来转换任意类型的数据,而后两者只能用于转换字符串。parseInt()只会将字符串转换为整数,而parseFloat()可以将字符串转换为浮点数。
Number()
字符串 --> 数字
如果是纯数字的字符串,则直接将其转换为数字
如果字符串中有非数字的内容,则转换为NaN
如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
布尔 --> 数字
true 转成 1
false 转成 0
null --> 数字
null 转成 0
undefined --> 数字
undefined 转成 NaN
parseInt()
这种方式专门用来对付字符串,把一个字符串转换为一个整数
var a = "1";
a = parseInt(a);
console.log(a);
console.log(typeof a);
parseFloat()
这种方式专门用来对付字符串,把一个字符串转换为一个浮点数
var a = "123.456";
a = parseFloat(a);
console.log(a);
console.log(typeof a);
注意:如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后在操作
转换为Boolean类型
将其它的数据类型转换为Boolean,只能使用Boolean()函数。
使用Boolean()函数
数字 —> 布尔
除了0和NaN,其余的都是true
字符串 —> 布尔
除了空串,其余的都是true
null和undefined都会转换为false
对象也会转换为true
4.语句
条件语句
使用if
、else if
和else
进行条件判断。
使用switch…case
循环
使用for
、while
、do while
等进行循环操作。
5.对象
创造对象
1. var person = new Object();
person.name = "孙悟空";
person.age = 18;
console.log(person);
2. var person = {
name: "孙悟空",
age: 18
};
console.log(person);
访问属性
person.name
person['name']
删除 delete person.name
遍历
枚举遍历对象中的属性,可以使用for (var 变量 in 对象)语句循环,对象中有几个属性,循环体就会执行几次。
var person = {
name: "zhangsan",
age: 18
}
for (var personKey in person) {
var personVal = person[personKey];
console.log(personKey + ":" + personVal);
}
for 循环遍历 person 对象的属性,将属性名和属性值分别存储在 personKey 和 personVal 变量中,并通过 console.log() 方法打印出来。
6.函数
注意JavaScript中的函数也是一个对象,使用typeof检查一个函数对象时,会返回function。
定义
使用function
关键字定义函数。
function add(a, b) {
return a + b;
}
立即执行函数
函数定义完,立即被调用,这种函数叫做立即执行函数,立即执行函数往往只会执行一次。
(function () {
alert("1");
})();
对象中的函数
对象的属性值可以是任何的数据类型,也可以是个函数。
如果一个函数作为一个对象的属性保存,那么我们称这个函数是这个对象的方法,调用这个函数就说调用对象的方法(method)。
this对象
解析器在调用函数每次都会向函数内部传递进一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象,这个对象我们称为函数执行的上下文对象,根据函数的调用方式的不同,this会指向不同的对象
以函数的形式调用时,this永远都是window
以方法的形式调用时,this就是调用方法的那个对象
//创建一个全局变量name
var name = "全局变量name";
//创建一个函数
function fun() {
console.log(this.name);
}
//创建一个对象
var obj = {
name: "张三",
sayName: fun
};
//我们希望调用obj.sayName()时可以输出obj的名字而不是全局变量name的名字
obj.sayName();