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. golang中的net/rpc包

    本文先介绍RPC,然后go原生对RPC的使用,之后是介绍go语言中有哪些RPC框架以及一些其他常见的框架,最后是探究go语言中rpc的源码. (1)首先介绍下什么RPC? (2)RPC可以做什么? ( ...

  2. [Note]Splay学习笔记

    开个坑记录一下学习Splay的历程. Code 感谢rqy巨佬的代码,让我意识到了Splay可以有多短,以及我之前的Splay有多么的丑... int fa[N], ch[N][2], rev[N], ...

  3. SpringBoot集成mybatis以及自动化测试代码实现

    Mybatis和logback的应用配置 1.在module的pom.xml文件中,加载springboot和swagger.lombok.fastjson.mysql.mybatis包 2.在res ...

  4. springmvc、springboot 参数校验

    参数校验在项目中是必不可少的,不仅前端需要校验,为了程序的可靠性,后端也需要对参数进行有效性的校验.下面将介绍在springmvc或springboot项目中参数校验的方法 准备工作: 引入校验需要用 ...

  5. CTF_论剑场 名侦探柯南

    首先看一下是一个压缩包然后下载 解压后会发现一个图片和另一个压缩包 打开图片 发现是这个 用HxD分析一下这张图片通过搜索 zip jpg...... 然后会发现这张图片里有一个png 图片 所以判断 ...

  6. LNMP调优

    1.编译安装nginx前修改: 在安装包目录下  vim src/core/nginx.h //#号不代表注释 #define nginx_version      1009009 //软件版本号 # ...

  7. sqli-libs(29(jspstudy)-31关)

    Less_29 Less-29: 需要用到jspstudy跟phpstudy   搭建jspstudy: sqli-labs-master文件夹下面还有tomcat文件,这才是真正的关卡,里面的jsp ...

  8. 最小树形图模板 UVA11183

    题意:给定n个节点m条边的有向带权图,求以0为根节点的最小树形图权值大小 用这个代码的时候要注意,这里的数据是从0开始的,边也是从0开始算, 所以在打主代码的时候,如果是从1开始,那么算法里面的从0开 ...

  9. 使用SQL命令行更改数据库字段类型

    ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 添加列 ALTER TABLE students ADD COLUMN address VARCHAR(100) DEFAU ...

  10. Jmeter注册100个账户的三个方法

    Jmeter注册账户比如注册成千上万个账户,如何快速实现呢? 三种方法分别举例注册5个账户 1)添加CSV data config_txt 2)添加CSV data config_csv 3)函数助手 ...