运算符
-
算是运算符:+,-,,/,%,++,--,**(幂),+(累加计算)
-
i++和++i的区别?
-
++是运算符,如果++在变量前面先计算然后再复制,则值是计算后的值
-
如果++在变量的后面,先把变量的旧值拿出来使用,最后再计算出新值,再复制。
-
总结:i++是先赋值后计算,++i是先计算后赋值。
-
-
-
逻辑运算符:==,===,!,||,&&
-
!求反,!true => false
-
|| 或,第一个值如果为true,则使用第一个的值,否则就使用右边的值 && 与,如果第一个值是false,就终止执行,必须左边的和右边的值都为true才行,条件才成立。
-
== 只判断值,不判断结果【它偷偷地做了数据的隐式转换】
-
=== 全等不光判断值,还会判断数据类型
-
条件语句
-
if
-
switch
-
三目运算符/三元表达式、三元运算符
三者的区别
-
if和switch没有返回值,三目运算符有返回值
-
语法不一样
-
三目运算符虽然有返回值,可以有更多的使用场景,但是缺点是阅读不方便
-
位运算符:先把左右的十进制转成二进制之后再计算
-
&按位与,
-
|按位或,
-
^按位异或
-
~按位非
-
<<按位左移
-
按位右移
-
按位右移零
函数
普通函数=>声明函数: function name(){}
- 函数可以提升,整个函数会提升
匿名函数: function(){}
函数表达式: var name = function(){}
- 如果用var接收匿名函数,只会提升变量,不会提升函数
自执行函数: (function(){})()或function(){}()
函数自有属性
- arguments 不定参数-伪数组 - name 获取函数的名字
函数作用域
function 里的this指向它声明的作用域里的顶级对象,如果函数是绑定给dom事件的,那么this是dom对象,如果函数是声明在全局作用域里,this是window。
什么是函数?什么是方法
-
函数是指独立的一个函数,该函数可以被直接调用
-
方法是指函数归属于一个对象,使用对象点函数的方式调用,这个函数叫方法
回调函数
-
把函数作为参数传递给另一个函数
闭包
-
就是常驻内存的一个值,这个值默认不会被释放,但是这个值还不会污染全局作用域
-
被垃圾回收机制忽略的值,所产生的内存占用也叫闭包