2. Math.abs()
3. Math.sin()
sin 方法返回一个 -1 到 1 之间的数值,表示给定角度(单位:弧度)的正弦值。
4. Math.cos()
cos 方法返回一个 -1 到 1 之间的数值,表示角度(单位:弧度)的余弦值。
5. Math.tan()
tan 方法返回一个数值,表示一个角的正切值。
6. Math.atan()
函数返回一个数值的反正切(以弧度为单位)
7.已知两直角边Y,X长度,求夹角角度:
Immediately-Invoked Function Expression(IIFE立即执行函数表达式)可以让函数在创建后立即执行 必须是一个表达式
1、函数的定义方式一: 函数声明
2、函数的定义方式二: 函数表达式(匿名函数表达式、命名函数表达式)
1、错误写法 直接报错 js引擎看到function关键字会认定后面跟的是函数定义语句,此时后面如果直接加上()会被当做分组操作符,而分组操作符必须有表达式,所以此时报错
2、立即执行函数的正确写法,让js引擎认为这是一个表达式
1、立即执行函数不能再外面再被调用,执行完之后已经被立即销毁了。所以立即执行函数的函数名称可以省略, 统一使用匿名函数表达式
2、由于立即执行函数,执行完后就立即被销毁了 所以它可以创建一个独立的作用域,而且该作用域里面的变量,外面访问不到。因此就可以避免变量污染
正确输出写法:用立即执行函数将i作为参数传入,立即函数每次执行时,会把参数i的值复制一份。然后再创建函数作用域来执行函数
1、立即执行函数和闭包只是有一个共同有点就是都能减少全局变量的使用
2、立即执行函数只是函数的一种调用方式,声明完后立即调用,一般只能调用一次,调用完后会立即被销毁,不会占用内存,有自己的独立作用域,外部不能调用
3、闭包则主要是让外部函数可以访问内部函数的作用域,也减少了全局变量的使用,保证了内部变量的安全,但是被引用的内部变量不会被销毁,增大了内存消耗,使用不当会容易造成内存泄露
可参考: https://www.cnblogs.com/wenxuehai/p/10357274.html
arguments
首先我们先来看一段代码:
如果要求n个数的和,这个函数就用不了,还需要再写一个,这样是很麻烦的
但是我们如果得到在实参里多出的3和4呢?
js里面提供了一个在函数中专用的, 获取所有实参的对象:arguments
arguments 这个东西看起来像数组,但是其实不是一个数组,我们管它叫 伪数组 。它具有数组的长度和顺序等特征。
arguments这个东西就解决了我们要求n个数字的和的问题
短路运算
回忆一下逻辑运算符,运算的时候发生了隐式转换吗?
接下来看下非布尔值之间的逻辑运算:
短路运算在函数中的使用: