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. 怎么把VS里的scanf_s换成scanf

    转自:https://blog.csdn.net/hansionz/article/details/79889039 方法一:在项目属性中---->配置属性------>C\C++---- ...

  2. 2019牛客多校第一场E ABBA dp

    ABBA dp 题意 给出2(N+M)个AB字符,问能构造出N个AB子序列和M个BA子序列组成的2*(n+m)的序列种类有多少 思路 碰到计数构造类的题目,首先要去找到判断合法性的条件,即什么情况下合 ...

  3. IE的css hack

    #element { color:orange; } #element { *color: white; } /* IE6+7, doesn’t work in IE8/9 as IE7 */ #el ...

  4. HTML学习(5)标题、水平线、注释

    HTML 标题 标题(Heading)是通过 <h1> - <h6> 标签进行定义的. <h1> 定义最大的标题. <h6> 定义最小的标题. 注: 浏 ...

  5. MySql 怎么存取 Emoji

    01.前言 Emoji 在我们生活中真的是越来越常见了,几乎每次发消息的时候不带个 Emoji,总觉得少了点什么,似乎干巴巴的文字已经无法承载我们丰富的感情了.对于我们开发者来说,如何将 Emoji ...

  6. 229. 求众数 II

    Q: 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素. 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1). 示例 1: 输入: [3,2,3] 输出: [3 ...

  7. makecert 产出证书

    C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin>makecert -r -n // -e // -sv mymuse.pvk my ...

  8. php一些实用的自制方法

    时间戳转多久之前 function mdate($time = NULL) { $text = ''; $time = $time === NULL || $time > time() ? ti ...

  9. Java“被迫”退出争霸,Python继续霸占首位!老牌程序员:我不服

    2019年转眼已经接近尾声,如果盘点下2019年最火的语言,除了Python还能有谁?你心中的王者语言又是谁? 这一年Python风光无限 这一年JAVA走向右边 这一年,我们都很感慨,你呢? 关于P ...

  10. C++的四种转换(const_cast、static_cast、dynamic_cast、reinterpreter_cast)

    static_cast 相当于C语言中的强制转换:(类型)表达式或类型(表达式),用于各种隐式转换 非const转const.void*转指针.int和char相互转换 用于基类和子类之间的指针和引用 ...