JS基础语法

139 阅读2分钟

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