目录
条件判断语句
使用条件判断语句可以在执行某个语句前进行判断。如果条件成立则执行,否则不执行。
if和switch
语法与C语言类似,在此不做阐述。
循环语句
通过循环语句可以反复的执行一段代码多次
while,do...while和for
语法与C语言类似,在此不做阐述。
break和continue
可以为循环语句创建一个label,来标识当前的循环。
label:循环语句
使用break(continue)语句时,可以在break(continue)后跟着一个label,这样break(continue)将会结束指定的循环。
其他与C语言类似,在此不做阐述。
计时器
在程序执行前,开启计时器
console.time("计时器的名字")可以用来开启一个计时器
在程序执行完后,终止计时器
console.timeEnd()用来停止一个计时器,需要一个计时器的名字作为参数
只能在外部浏览器中使用
输入
prompt()可以弹出一个提示框,该提示框中会带有一个文本框。用户可以在文本框中输入一段内容,该函数需要一个字符串作为参数,该字符串将会作为提示框中的提示文字。
js使用css样式
若想在js中指定某个输入的样式,可以通过该方法添加:
document.write("<span>"+"xxx"+"</span>);
对象
对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。
对象的分类:
1.内建对象
-由ES标准定义的对象,在任何ES的实现中都可以使用
2.宿主对象
-由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
3.自定义对象
-由开发人员自己创建的对象
创建对象:使用new关键字调用函数。
var xxx = new Object();
属性
在对象中保存的值称为属性
向对象添加属性
语法:对象.属性名 = 属性值;
xxx.name = "name";
读取对象中的属性
语法:对象.属性名
如果读取对象中没有的属性,不会报错而是会返回undefined
删除对象的属性
语法:delete 对象.属性名
in 运算符
通过该运算符可以检查一个对象中是否含有指定的属性。如果有则返回true,否则返回false。
语法:"属性名" in 对象
属性名
对象的属性名不强制要求遵守标识符的规范。
如果要使用特殊的属性名,不能采用 . 的方式操作,需要使用另一种方式:
语法:对象["属性名"] = 属性值;
同时读取时也要采用这种方式。使用[]这种形式去操作属性,更加灵活,在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性
属性值
JS对象的属性值,可以是任意的数据类型,可以是一个对象,也可以是一个函数。
存储结构
JS中的变量都是保存到栈内存中的
基本数据类型的值直接在栈内存中存储,值与值之间是独立存在的,修改一个变量不会影响其他的变量。
对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,而变量保存的是对象的内存地址(对象的引用)。如果两个变量保存的是同一个对象引用,即指向同一个地址。
对象字面量
使用对象字面量,可以在创建对象时直接指定对象中的属性。
语法:{属性名:属性值,属性名:属性值,……}
var obj={
name:"xxx",
age:18
};
对象字面量的属性名可以加引号也可不加,一般不加。
函数
函数(function)也是一个对象。
使用构造函数来创建函数
可以将要封装的代码以字符串的形式传递给构造函数
var fun = new function("xxx");
使用函数声明来创建函数
语法:
function 函数名(形参1,形参2……形参n){
语句……
}
function fun(){
xxx
}
使用函数表达式来创建函数
语法:
var 函数名 = function(形参1,形参2……形参n){
语句……
};
var fun = function(){
xxx
};
参数
可以在函数的()中来指定一个或多个形参。多个形参之间用 , 隔开。
调用函数时,解析器不会检查实参的类型。调用函数时,解析器也不会检查实参的数量。
如果有多余的实参不会被赋值。如果实参的数量少于形参的数量,则没有对应实参的形参的值是undefined
实参可以是任意的数据类型,也可以是一个对象。当我们参数过多时,可以将参数封装到一个对象中,然后通过对象传递。同时,实参可以是一个函数。
返回值
与C语言类似,部分内容不做阐述。
返回值可以是任意的数据类型,也可以是一个对象,也可以是一个函数。
若返回函数则写法可以是:
function fun(){
function fun2(){
alert("xxx");
}
return fun2;
}
fun()(); //调用fun函数里的fun2()
//该调用写法与var a=fun();a(); 的作用一样
如果return语句后不跟任何值就相当于返回一个undefined,如果函数不写return,则也返回undefined。
立即执行函数
函数定义完,立即被调用,这种函数叫立即执行函数。
立即执行函数只会执行一次。
//无参
(function(){
语句
})();
//带参
(function(x,x){
语句
})(x,x);
方法
函数可以是对象的属性。如果一个函数作为一个对象的属性保存,那么我们称这个函数是这个对象的方法,调用这个函数就说调用对象的方法。但是它只是名称上的区别,无其他区别。
枚举对象中的属性
使用for ... in语句
语法:
for(var 变量 in 对象){
语句
}
for ... in语句的对象中有几个属性,循环体就执行几次。每次执行时,会将对象中的一个属性名赋值给指定的变量。
若要取属性值可以:
for(var n in obj){
console.log(obj[n]);
}