js基础学习—运算符
已经学过其他编程语言,所以只记录一些需要注意的点
算术运算符
递增和递减运算符
前置自增自减运算符++a:先自增/自减后返回值
后置自增自减运算符a–:先返回原值后自增/自减
比较运算符
===和!= =表示全等,要求值和数据类型都相等
逻辑运算符
短路运算(逻辑中断):当有多个表达式时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值
逻辑与
语法:表达式1 && 表达式2
如果第一个表达式的值为真,则返回表达式2
如果第一个表达式的值为假,则返回表达式1
若多个表达式全为真,则返回最后一个
若存在假,则返回第一个假
逻辑或
语法:表达式1 || 表达式2
若存在真,则返回第一个真
若全为假,则返回最后一个假
运算符优先级
流程控制
三元表达式
num > 5 ? “shi” :“不是”
switch
()中的值必须和case里面的值全等的时候才可以,即必须是值和数据类型都一致才可以。
数组
创建数组:
1、var 数组名 = new Array(); //创建一个空的数组
2、var 数组名 = [];
数组的长度:
数组名.length length值可修改,可用来扩充数组,默认增加的为undefine
函数
- 如果函数有return,则返回的是return后面的值,如果函数没有return,则返回undefined
break、continue、return的区别: - break:结束当前的循环体
- continue:跳出本次循环,继续执行下次循环
- return:不仅可以推出循环还能够返回return语句中的值,同时还可以结束当前的函数体的代码
arguments的使用
当我们不确定有多少个参数传递的时候使用。arguments实际上是当前函数的一个内置对象,arguments对象中存储了传递的所有实参,以伪数组形式存储。
伪数组:
1、具有length属性
2、按照索引的方式进行存储
3、没有真正数组的一些方法pop() push()等
函数声明
1、function 函数名(){}
2、函数表达式(匿名函数): var 变量名=function(){} 可通过 变量名() 调用,也可以传递参数。
js作用域(es6前)
- 分为全局作用域和局部作用域
- 在函数内部没有声明直接赋值的变量也属于全局变量
- 全局变量只有浏览器关闭的时候才会销毁,比较占用内存资源
- 局部变量程序执行完毕就会销毁
- js没有块级作用域(ES6后新增块级作用域):即在花括号里定义的变量在外部也可以使用
- 块级作用域{}
预解析
- js解释器在运行js代码的时候分为两部:预解析和代码执行
- 预解析:js引擎会把js里面所有的var还有function提升到当前作用域的最前面
- 代码执行:按照书写的顺序从上往下执行
- 预解析分为变量预解析(变量提升)和函数预解析(函数提升)
-变量提升:把所有的变量声明提升到当前的作用域最前面,不提升赋值操作
-函数提升:就是把所有的函数声明提升到当前作用域的最前面,不调用函数。因此调用函数可写在函数声明的前面。但函数表达式必须写在调用函数的前面。
对象
js中对象是一组无序的相关属性和方法的集合,所有事物都是对象,例如:字符串、数值、数组、函数等。