JS特点
- JS大小写敏感
- JS兼容旧版本,不像python,python2与3互不兼容
值与返回值不同
- 执行了一个函数才会有返回值
- 对于函数来说,值就是返回值
console.log // 值是一个函数代码,没有返回值
console.log(3) //返回值是undefined, 之所以会打印出3是因为console.log这个函数的功能是打印
题目: return后面不能加回车
// code1
function fn(){
return
3
} // 为什么fn()时 返回undefined
// code2
function fn(){
return undefined
3
} // code1的return 后是换行 js会自动补上undefined
如何写注释
- 注释要写但是要足够精简,纯粹是用中文解释英语的解释性注释不要写
- 可以写踩过的坑以告诉别人这个地方不要轻易去改
条件1 ? 结果1:结果2 常用于代替选择语句
注意,这里结果1语句和结果2语句都必须存在的不能少一句
// code1
var a=1;
if(a>1){
console.log('1')
}
else{
console.log('2')
}
// code2
var a=1;
a>1? console.log(1):console.log(2)
短路逻辑 常用于代替条件判断语句
A && B 如果A对则执行B
// code1
var a=2;
if(a>1){
console.log('1')
}
// code2
var a=2;
a>1 && console.log('1')
常用写法,用于判断一个函数,在的话就执行:
fn&&fn()
A || B 如果A错则执行B
常用写法,用于给一个变量赋保底值:
var a=a||100 // 保底值是100
while的一道死循环题目
var a=0.1;
while(a!=1){
console.log(a);
a=a+0.1;
} // 为什么这是一个死循环呢?
答案:因为a加着加着就不精确了,会变成0.99999绕过了1
for循环的题目
// code1
for(var i=0;i<5;i++){
console.log(i)
}
console.log(i)//请问这里的i是多少 答案是5
// code2
for(var i=0;i<5;i++){
setTimeout(()=>{
console.log(i)
},0)
}
//请问输出结果是多少 答案是5个5
为什么code2输出结果是5个5?
因为setTimeout是先让循环完之后过一会儿执行,因为code1我们知道,执行完毕的结果是i=5,那么在循环完之后,过一会儿执行当然就是5个5.
// code3
for(let i=0;i<5;i++){
setTimeout(()=>{
console.log(i)
},0)
}
//输出结果是01234
break与continue
- break是跳出整个循环
- continue是跳过循环里面的这一次
- break只会跳出最近的一层,若有多层,则不会影响外层
for(var i=0;i<10;i++){
if(i%2===1){
continue //若遇到奇数则跳过这一次循环
}else{
console.log(i)
}
} // 输出0 2 4 6 8