1.值类型之间的相互转换
//转字符串:String() | .toString() | "" +
//例:123..toString()
//转数字:Number(a)| parseFloat() | parseInt()
//例:parseFloat('3.14.15') => 3.14
//转布尔:Boolean(a)
//非数字:NaN 当一个其他类型转化为数字类型的产物
//任何判断一个结果是否是NaN,isNaN(运算)
2.运算符
//算数运算符:+ - * / % ++ --
//赋值运算符:+= -= /= %=
//比较运算符:> < >= <= == === != !==
//逻辑运算符:&& || !
//三目运算符:结果 = 条件表达式 ?结果1:结果2;
//js中不区分整型和浮点型,结果为什么就是什么
var res= 5/2; //2.5
//任何正整数对n取余 结果为:[0,n-1]
//num++ | ++num => num=num+1; =>自增1
//++在后先赋值再自增 | ++在前先自增再赋值
var num=10;
var r1=++num;
console.log(r1); //++num => re=11 | num++ => re=10
console.log(num); //11
x+=10; //x=x+10
console.log(y==z); //只做值比较 => true
console.log(y===z); //全等:值与类型都必须相等 => false
//逻辑与:条件1 && 条件2 => 全为真则真,否则为假
//逻辑或:条件1 || 条件2 => 全为假则假,否则为真
//逻辑非:非真即假,非假即真
//逻辑与的短路效果,条件1为假,条件2就不会被执行
//逻辑或的短路效果,条件1为真,条件2就不会被执行
//三目运算符:结果=条件表达式 ?结果1:结果2;
//条件满足,执行:前的结果1,否则执行:后的结果2
3.if条件判断
// +做类型转换
var salary = +prompt("请输入工资:");
if (salary > 88888) {
console.log("开始还账!");
salary -= 50000;
console.log("开始购物 30000!");
salary -= 30000; // 最少剩8888
if (salary > 10000) {
console.log("旅游!");
} else if (salary > 9000) {
console.log("花200学习!");
salary -= 200;
} else {
console.log("吃土!")
}
} else {
console.log("要求提薪");
}
// if可以省略else if, 也可以省略else
// if可以嵌套
// if(条件){ 逻辑体 } else if(条件){ 逻辑体 } else{ 逻辑体 }
4.循环
// 循环比较
// 1.for: 解决已知循环次数的
// 2.while: 可以解决所有for循环可以解决的问题,也可以解决不知道循环次数但知道结束条件
// 3.do...while: 无论条件是否满足,循环体都会被执行一次
for (循环变量①; 条件表达式②; 循环变量增量③) {
代码块④;
}
=
while (条件表达式) {
代码块;
}
do {
代码块;
} while (条件表达式);
// break:结束本层循环
// continue:结束本次循环进入下一次循环
5.函数
//js函数的重点:如何给事件提供功能
//1.函数的定义
function 函数名(形参列表){
函数体;
};
//2.函数的调用(可以在函数定义之前,调用)
var res=函数名(实参列表);
//3.函数的参数
//i.个数不需要统一
//ii.可以任意位置具有默认值
//iii.通过...语法接收多个值
//4.返回值
//i.可以空return操作,用来结束函数
//ii.返回值可以为任意js类型数据
//iii.函数最多只能拥有一个返回值
//5.匿名函数:没有名字的函数,函数只能在定义的时候自己来调用一次,之后再也无法被调用
//匿名函数 自定义
(function () { //产生具备名称空间(局部作用域),并且可以随着匿名函数调用完毕,被回收
var aaa=1000;
console.log('匿名函数的自调用')
})()