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:代表调用当前函数的环境函数(谁调用我我就是谁)  

回调与递归:

  回调:我调别人

  递归:我执行我自己

堆栈溢出: 递归回调次数过多,或者没有终结递归回调的条件

29 对象&函数的更多相关文章

  1. JavaScript中两种类型的全局对象/函数

    这里所说的JavaScript指浏览器环境中的包括宿主环境在内的. 第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScri ...

  2. jquery系列教程7-自定义jquery插件全解:对象函数、全局函数、选择器

    点击打开: jquery系列教程1-选择器全解 jquery系列教程2-style样式操作全解 jquery系列教程3-DOM操作全解 jquery系列教程4-事件操作全解 jquery系列教程5-动 ...

  3. day11函数的参数,函数对象 - 函数名,函数的嵌套调用

    复习 # 什么是函数:具体特定功能的代码块 - 特定功能代码块作为一个整体,并给该整体命名,就是函数 # 函数的优点: # 1.减少代码的冗余 # 2.结构清晰,可读性强 # 3.具有复用性,开发效率 ...

  4. python中的一等对象--函数

    一等对象 什么是一等对象: 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传递给函数 能作为函数的返回结果 python中的字符串,列表什么的都是一等对象,但对如果之前只是使用c++.jav ...

  5. python第四十八课——类函数和对象函数

    5.类函数和对象函数 类函数:在定义函数的上面一行书写@classmethod,特点:没有self 有cls 对象函数:定义在class中的普通的def函数 演示类函数和对象函数的定义使用: 总结: ...

  6. JQuery对象函数

    1.JQuery对象函数写法格式 简单示例: main代表对象名,main.roleName = (function () { return $('#RoleName').val();})();表示为 ...

  7. JavaScript中两种类型的全局对象/函数【转】

    Snandy Stop, thinking is the essence of progress. JavaScript中两种类型的全局对象/函数 这里所说的JavaScript指浏览器环境中的包括宿 ...

  8. Python 函数对象-函数嵌套-名称空间与作用域-闭包函数

    今日内容: 1. 函数对象 函数是第一类对象: 指的是函数名指向的值可以被当中数据去使用 1.可以被引用 2.可以当做参数传给另一个函数 3.可以当做一个函数的返回值 4.可以当做容器类型的元素 2. ...

  9. PHP 类/对象函数

    PHP类/对象函数是PHP核心的一部分,无需要安装就可以使用. 函数名称 描述 __autoload 尝试加载未定义的类 class_alias 为一个类创建别名 class_exists 检查类是否 ...

随机推荐

  1. 2分钟就能学会的【Google/百度搜索大法】了解一下?

    之前我在知乎回答了「日常生活中有哪些十分钟就能学会并可以终生受用的技能」,现在也整理分享给公众号的朋友们. 作为一个入坑8年国际贸易的老阿姨,真心推荐[google搜索大法](同样适用于百度). 2分 ...

  2. 题解【洛谷P1074】[NOIP2009]靶形数独

    题面 题解 一开始写了一个朴素的数独,无任何剪枝优化,得到了\(55\)分的好成绩. 就是这道题加一个计算分数. 代码如下(\(\mathrm{55\ pts}\)): /************** ...

  3. Atcoder Beginner Contest 155D(二分,尺取法,细节模拟)

    二分,尺取法,细节模拟,尤其是要注意a[i]被计算到和a[i]成对的a[j]里时 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> ...

  4. 解决报错WARNING: IPv4 forwarding is disabled. Networking will not work.

    报错: [root@localhost /]# docker run -it ubuntu /bin/bash WARNING: IPv4 forwarding is disabled. Networ ...

  5. 使用Samba实现文件共享:Windows和Linux之间

    1.概述: 1987 年,微软公司和英特尔公司共同制定了 SMB(Server Messages Block,服务器消息 块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之 ...

  6. 【转载】Java泛型(一)

    转自:http://www.cnblogs.com/lzq198754/p/5780426.html 1.为什么需要泛型 泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立 ...

  7. Demo:基于 Flink SQL 构建流式应用

    Flink 1.10.0 于近期刚发布,释放了许多令人激动的新特性.尤其是 Flink SQL 模块,发展速度非常快,因此本文特意从实践的角度出发,带领大家一起探索使用 Flink SQL 如何快速构 ...

  8. P1558 色板游戏 线段树(区间修改,区间查询)

    题意: 给n,m,k,n长度,k个操作,m种颜色 操作C:输入A,B,C,区间[A,B]变成C颜色,可能A>B,所以要确保A<B 操作P:输入A,B,区间[A,B]的颜色种类 思路: 因为 ...

  9. mybatis会自动把字段名中的下划线转为驼峰命名法?

    先看一下转化的调用堆栈: 代码如下: 上面代码只是去掉了下划线,并没有首字母小写变大写的代码.再跟进findProperty方法可以找到获取驼峰结果的代码如下: 可以看出通过reflector.fin ...

  10. 连接mongodb服务

    语法:mongo.exe ip地址:端口号/数据库名(默认连接test) mongodb的默认端口号:27017 MongoDB内部结构   MongoDB MySQL 文档(Document) 记录 ...