1.运算符
<1>运算操作符
“+” 加号
1.数学运算,字符串链接。
2.任何数据类型加字符串都等于字符串。
“-” 减号 “*” 乘号 “/” 除号 “%” 取余 “=” 赋值 “()” 括号
“++” “--” “+=” “-=” “/=” “*=” “%=”
<2>比较运算符
“>” “<” “==” “>=” “<=” “!=”
1.比较结果为Boolean值。
<3>逻辑运算符
“&&” “||” “!”
1.运算结果为真是的值
2.被认定为false的值------undefined-----null-----NAN-----“”-----0-----false
2.条件语句
if(a>b){
a++;
}
else{
b++;
}
if else语句,如果if括号中表达式为ture则执行if中的内容,否则执行else中的内容。else
if(a>10){
a++;
}
else if(a>5){
a += 2;
}
else if(a>0){
a += 3;
}
else{
a = -a;
}
使用if...else if...else语句来选择多个代码块之一来执行
3.switch case语句
switch(n){
case"a" : console.log("a"); break;
case"2" : console.log("b"); break;
case ture : console.log("c"); break;
}
switch case 语句中,首先设置表达式n。随后表达式的值会与结构中的每一个case的值作比较。如果存在匹配,则与该case关联的代码块会被执行。使用break来阻止代码自动的向下一个case运行。
4.typeof(a)/typeof a返回变量类型
变量类型有:number string Boolean object undefined function
未被定义的变量只有被typeof()时不会报错,并且返回undefined,其值为字符串类型
类型转换
1.var num =Number('123'); //转换为数字类型的123
2.var num = Number(undefined); //转换为NaN
//将括号内的类型转换为数字类型,如果转换对象是字符或者含有字符,那么转换为NaN
1.var num = parseInt(demo); //转换为整型
2.var num = parseInt(ture);
3.var num = parseInt(false); //当且仅当对象为Boolean类型时转化为NaN
4.var demo = '10';
var num = parseInt(demo,16); //以16进制为基底转化为10进制
1.var num = parseFloat(demo); //转化为浮点数
1.var num = Boolean(num); //转化为布尔值
1.var num = demo.toString(); //undefined和null不能用,否则报错
1.var num = 123.456789;
docunment.write(num.toFixed(3));
//保留三位小数,四舍五入。
隐式类型转换
1.isNaN() 调用Number,与NaN进行对比,若相同返回ture,否则返回false
2.‘++’ ‘--’ 将类型转化为数字类型
var a = '123';
a++;
其结果为数字类型的124
3.‘+’ 正号 ‘-’负号
var a = +'abc';
console.log(a + ': '+ typeof(a));
//NaN:Number
4.‘+’ 加号 调用string()任何类型与字符串相加都得字符串
5.‘-’ ‘*’ ‘/’ ‘%’ 调用Number
6.‘&&’ ‘||’ ‘!’
7.‘>’ ‘<’ ‘>=’ ‘<=’ 有数字进行比较就转化为数字,字符与字符比较比较的是ASCII的值
8.‘==’ ‘!=’ 转化为同一类型进行比较
5.函数
function sum(a){
a++;
}
sum(a);
function为定义函数的关键字。
1.命名函数表达式
var text = function abc(){
}
2.匿名函数表达式
var demo = function() {
}
- 当实参数量大于形参数量时,函数中arguments数组中存下所有实参
function sum(a){
//arguments--[11,2,3] 实参列表
console.log(arguments);
}
sum(11,2,3);
- 映射规则,函数中形参变量值变化时对应arguments中的值也对应变化,arguments中的值变化时对应的形参变量的值也发上变化
function sum(a,b){
//arguments[1,2] var a=1;
a=2;
arguments[0]=3;
console.log(a);
}
sum(1,2);
- 当形参的数量大于实参的数量时,多余形参的部分即使在函数中赋值,形参的值改变,但是不遵循映射规则,对应arguments数组中的值为undefined,如果给多余arguments数组中赋值,不仅形参的值为undefined,对应arguments数组中的值也为undefined
function sum(a,b){
b=2;
console.log(arguments[0]);
}
sum(1);
- 函数的递归
//求斐波那契数列第n项的值
function fb(n){
if(n == 1 || n == 2){
renturn 1;
}
renturn fb(n - 1)+fb(n - 2);
}
6.预编译
预编译前奏
1.imply global 暗示全局变量,即任何变量,如果变量未经声明就赋值,该变量就为全局所有。
2.一切声明的全局变量,也归window所有。(window就是全局的域)
预编译
1.创建AO对象
2.找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
3.将实参值和形参值统一
4.在函数体里面找函数声明,值赋予函数体
function fn(a){
console.log(a);
var a = 123;
console.log(a);
function a(){}
console.log(a);
var b = function(){}
console.log(b);
function d(){}
}
//function a(){}
//123
//123
//function(){}