JS从0开始——第二天笔记
条件语句(三种)
if……else……
逻辑运算符
- &&:并且,同时满足
- ||:或,只要满足其中一个
三元运算符
条件?条件成立时执行的语句:条件不成立时执行的语句
switch case:绝对比较
从上而下依次进行比较,而且进行的是绝对比较
var num=10;
switch (num){
case "10":
console.log(1);
break;//停止,不让语句继续向下判断
case 10:
case "10px"://满足两条语句其中一个时就执行
console.log(2);
break;
……
default://上边都不成立时执行此处的语句
console.log(n)
}
循环语句(三种)
for循环(四步曲)
- 定义变量i;
- 判断条件是否成立;
- 执行循环体;
- 执行i++。
执行过程1->2->3->4->2->3->4->2……
for(var i=0;i<n;i++)
//循环体
}
//JS是单线程的,同一时间,只能做一件事。
continue:停止本轮循环,循环体中下面的代码不再执行。
break:终止整个循环。
for……in…… 循环
对象没有length属性,所以用for……in……循环
var obj={}
for(var key in obj){
console.log(obj[key]);
break;//终止循环
}
// key:代表属性名,而且是个字符串
// obj[key] 代表属性名的属性值
// 属性名是数字的先输出;输出循环会根据属性名进行排序,从小到大依次输出;
while循环
改变while的条件一般在循环体中进行修改;
一般用于不知道循环多少次时;
while:阻塞主线程,让代码在此停留;
函数
定义函数
函数的定义:
- 首先会开辟一个十六进制的空间地址:堆内存;
- 函数体中的代码以字符串的形式存储到堆内存中;
- 把这个空间地址赋值给函数名。
sum实际就存储一个空间地址
执行函数
作用域:是提供代码运行环境的;
- 首先形成一个私有的作用域;
- 形参赋值;
- 变量提升;
- 代码从上到下运行;
- 作用域是否销毁。
形参和实参
- 形参:函数定义的小括号中传入的参数就是形参;
- 实参:函数执行时的小括号中传入的参数就是实参;
- 如果函数中只有形参,没有实参,那么函数中形参默认存储的值是undefined;
函数的arguments
- 函数的实参集合,只能在函数体中使用;
- 不是一个数组,是一个类数组;
- 适用于参数较多的情况。
function sum(){
var total=0;
for(var i=0;i<arguments.length;i++){
var cur=Number(arguments[i]);//转为换数字
if(!isNaN(cur)){ //检验是否是有效数字
total+=cur;
}
}
return total;//return返回的不是total这个私有变量,实际上是total之前储存的值。
}
//只要函数执行,就会有一个返回值,函数的返回值是return出来的值
var s=sum(1,1,5,554,22,"16px","10"...)
console.log(s)
return:函数的出口
- 把函数体内部的值return到函数体外面。
- return终止函数的执行,return下面的代码都不执行。
- return返回什么值,就是怎么值。如果没有return出内容,或者函数中没有return,那么函数默认都返回undefined。
函数的知识很多,说好理解它好理解,说它不好理解,它也不好理解,所以要自己多斟酌。比如return吧,看着简单,但是理解起来需要下一番功夫,还有其他函数,比如匿名函数,自运行函数等等