29 对象&函数
2024-10-08 11:31:57
switch:
穿越:
没有判断结果的情况下执行下一个case的语句块,叫穿越
或者穿越:
switch(s%10){
case 1:
case 2:
case 3:
s++;
break;
default:...;
}
累积穿越:
switch(s%10){
case 0:
s = 100;
case 1:
case 2:
case 3:
s++;
break;
default:...;
}
switch判断:
switch(true){//此处必须写true,否则不会进入下面代码块
case s > 90:...;
break;
case s > 95:...;
break;
case s > 95:...;
break;
default:...;
}
对象
设置变量的属性:
obj[a] = value;
如果a为变量,那么对象的key为此变量a的值,a的值改变,变量的key也改变
如果a为常量,那么对象的key为a本身
对象的key在ES5下必须是字符串类型
var obj = {a:1};
var t = 9;
obj[t] = 2;//obk[9] = 2;
obj['a'] = 3;//{a:3}
obj[10] = 1;//{10:1}
obj.a = 100;//{a:100}
console.log(obj);
for in循环:
遍历对象、数组、字符串的key,是ES5标准
var obj = {x:1,y:2,z:3}
for (const key in obj) {
console.log(key);//打印x,y,z
console.log(obj['key']);//打印undefined,没有此key可以对应的值
console.log(obj[key]);//打印obj中key为x,y,z对应的值
}
函数:
script标签创建时,会优先将函数存入堆中,将函数名存入栈中(匿名函数只有在代码运行到定义匿名函数后才能调用,没有被预先放入栈中,不在此列)
下面的script标签可以调用上面script标签定义的内容,反之不能
<script>
var first = 1;
// console.log(second);报错not defined
</script>
<script>
var second = 2;
console.log(first);//打印1
</script>
匿名函数:
var fn = function(){}
包括自执行函数: (function(){})();
构造函数
var fn = new Function("a","b","console.log(a+b)"){}
作用域:
一个东西所作用的范围
作用域是相对于函数来说的
函数外定义的变量可以在函数中调用
函数内定义的变量不能被函数外调用(var定义)
如果函数中没有用var定义变量,直接使用变量(a = 10),
该变量是全局变量,即window.a.(ES6不允许)也有叫做变量作用域提升
在函数中任意位置使用var定义的变量都是局部变量,就算if和for中的也一样,即使没有进入if()语句,那么也是定义了局部变量
局部变量:在函数内用var定义的变量,参数就是局部变量
全局变量:在函数外用var定义的变量就是全局变量
参数:
执行函数时填入值与函数参数列表顺序一致
参数可以是任意内容,如果没有传入参数,就是undefined
js是一个弱类型语言,因此参数不能强制约定类型(有时需要判断)
ES5中不能设置参数默认值,ES6可以 参数是局部变量也是临时变量,_w,_h,_color
参数列表:
如果参数数量不确定,或者不设置参数,却又在调用函数时传入了参数
那么参数就会存在于参数集arguments中
arguments是个虚伪数组
arguments.callee:代表函数本身
arguments.callee.caller:代表调用当前函数的环境函数(谁调用我我就是谁)
回调与递归:
回调:我调别人
递归:我执行我自己
堆栈溢出: 递归回调次数过多,或者没有终结递归回调的条件
最新文章
- C#开发微信门户及应用(27)-公众号模板消息管理
- war 文件打包技巧
- java07课堂作业
- HDU 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)
- poj 1988 Cube Stacking &;&; codevs 1540 银河英雄传说(加权并茶几)
- Mob短信验证的配置的解释
- SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型
- 演练2-1:创建MVC默认项目
- java+js实现完整的图片展示本地目录demo
- 用TableView做的新闻客户端展示页面
- TFboy养成记 CNN
- C#备份一个文件到指定的文件夹里面
- ubuntu 14.04 分辨率调整 -- xrandr命令
- UVALive - 3026:Period
- Java日期的一些基本处理
- mybatis基础知识
- 前端框架Angular、react、vue在github上的数据统计-2018-05
- hive 元数据库表描述
- HTML 转 PDF 之 wkhtmltopdf 工具精讲
- [转]ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)