1、*****Function:自定义函数:也叫做方法,是需要预定义好的,以后可以反复使用的代码段 1、创建:2种 *1、声明方式:function 函数名(形参列表){ 函数体; return 返回值; }
2、直接量方式:var 函数名=function(形参列表){
函数体;
return 返回值;
}
通过此方式,我们可以看出一个点:函数名其实就是一个变量名,函数名和变量名尽量的不要冲突
return的本意其实是退出函数的语法,但是return后如果跟着一个数据,会顺便将你的数据返回到全局,但注意只负责返回不负责保存
2、调用&接住结果:
var result=函数名(实参列表)
3、***作用域:2种
1、全局作用域:全局变量和全局函数,在任何地方都可以访问、使用
2、函数/局部作用域:局部变量和局部函数,只能在【函数调用时内部可用】
带来了变量的使用规则:优先使用局部的,局部没有会自动找全局,全局也没有就报错
特殊:
1、千万不要对着未声明的变量直接赋值:a=1;//会导致我们污染全局,内存平白无故再全局创建了一坨,还不方便我们释放
2、儿子不孝啊,局部的东西全局居然不能使用,解决:回看上面
3、建议:return一般只出现在函数体的末尾,而且只能写一个return
4、哪怕你没写return,其实最后也会悄悄的有一个return,return的是一个undefined,但是我们并不喜欢,不推荐
5、往往前辈们提供的方法,底层都有一个return操作,前辈们觉得以后使用这些方法的人,可能还需要此结果拿去干别的操作
6、不是说函数必须要有return,如果函数的调用者,以后还需要拿着函数的结果去干别的事,都需要return,否则不需要
4、***声明提前:鄙视重点 - 祖师爷留下的一个问题
原理:在程序正式执行之前,
会悄悄的将var 声明的变量和function声明的函数,
集中提前到当前作用域的顶部,但是赋值留在原地,
而且变量比函数轻
明说,我们自己写代码绝对不会碰到,只要我们遵守以下规则:
1、先创建后使用
2、变量名和函数名尽量的不要冲突
只会在鄙视中碰到:如果你碰到了先使用后创建,多半都是在考你声明提前,你应该先转换为提前后的样子,再去判断输出,一定要看清代码执行的顺序
5、***按值传递:简单来说就是两个变量之间进行赋值 - 你一定看清楚传递的是什么类型
如果你传递的是原始类型的值:两个变量之间是不会相互影响的,因为其实是复制了一个副本给对方
如果你传递的是引用类型的对象:两个变量之间是会相互影响的,因为我们其实是使用了同一个地址值 - 也叫做浅拷贝
为什么函数我给5颗星,因为考点极多:慢慢学,不着急
1、创建方式
2、作用域
3、声明提前
4、按值传递
5、匿名函数
6、重载
7、闭包
2、预定义的全局函数:前辈们提前准备好的,我们程序员可以随时随地使用的函数 1、编码和解码: 问题1:url之中是不允许出现多字节字符的,如果出现则会发生乱码,乱码导致谁都认不到 在utf-8编码格式下,一个汉字,占3字节 解决:在发送之前,前端会将多字节字符编码为单字节内容,在发送 后端接收到了,可以进行解码操作,变回多字节原文 编码:var code=encodeURIComponent("原文"); 解码:var 原文=decodeURIComponent(code); 在某一次浏览器更新后,自带此功能了,这两个方法当场就被淘汰了
现在唯一的用处就是用来玩个悄悄话 - 编码后发送到群里
2、isFinite(num) - 判断出你这个数字是不是无穷大,垃圾
有3个情况会为false:NaN、Infinity、分母为0
3、真正牛逼反而是我早就教过大家的:isNaN、parseInt、parseFloat、eval(脱字符串的衣服)
3、***分支结构:if分支、短路、三目、switch...case...: 语法: switch(变量/表达式){ case 值1: 操作; break; case 值2: 操作; break; case 值3: 操作; break; default: 默认操作; }
特殊:
1、switch...case 比较时不具备隐式转换
2、switch...case 默认满足了一项,会把后面所有的操作全部做完,解决:搭配上break
有的地方可以不加break:
1、default最后一句话可以不加
2、如果多个case之间做的是一样的操作,也可以不加
3、switch...case... vs if...else...
1、switch...case...:性能更好,因为它的case不能做范围判断,只能做精确值查找,但是switch小括号中还可以写表达式,语法相对复杂
2、if...else...:分支中性能最差,因为它支持范围判断,语法相对简单
建议:真实开发中,if...else...越少越好
扩展: 1、animate.css文件,这是一个动画库,具有很多很多的动画,动画都不需要你写,你可以直接使用,可以让你的金夫人更漂亮 animate.style/