JavaScript知识点整理 (二)
1)函数概述
1.函数是一块 JS 代码,被定义一次,但可以执行和调用多次。 JS 中的函数也是对象,
所以 JS 函数可以像其它对象那样操作和传递,所以也常叫 JS 中的函数为函数对象。
2.函数也是对象,也叫函数为函数对象。 函数的返回值依赖return,如果没有return则返回 undefined,如果作为构造器使用 new调用的话,return 后面的是基本类型或者没有,则将 this 返回。
3.函数调用的几种方式 直接调用 foo() 对象方法 o.method() 构造器 new Foo() call/apply/bind func.call(o)
2)函数声明与表达式
函数声明 函数表达式 函数构造器的区别:
3)this
全局对象中的this指的是window对象,但是在严格模式下时undefined. 在对象中对象方法中的this值得是当前的对象,或者把函数作为对象的方法是用this都是指当前对象. 对象原型链上的方法中的this也指的是当前对象。 对象中的get/set方法中的this也指的是当前对象。 构造器中的this指的是构造器函数prototype中的原型,当new一个对象时就会将构造器的prototype中的this赋值个当前对象。 call():扁平的传参, apply():以数组的方式传参; bind对象绑定之后即使有新的对象,仍然会按原来的绑定走。
判断this的指向(1-4优先级逐级递减,1优先级最高,4优先级最低): 1、函数被new调用,this指向由new新构造出来的这个对象; 2、函数通过call()、apply()、bind()调用,this指向被绑定的对象; 3、函数作为方法被调用,this指向这个对象(即常说的对象上下文); 4、默认(非严格模式)情况下,this指向window, 严格模式下,this指向undefined。
4)闭包
闭包的理解: 闭包就是能够读取其他函数内部变量的函数 可以把闭包简单理解成“定义在一个函数内部的函数”。 所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
闭包的作用: 闭包可以用在许多地方。它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
优点:灵活和方便、封装。 缺点:空间浪费、内存泄露、性能消耗。
5)作用域
1.javascript没有块级作用域(for、while、if等括号中声明变量和括号外声明变量效果一样,在语句块外仍然可以访问)
2.javascript可以用!或+或()放在function前,为函数表达式写法,防止function前置形成函数声明,函数声明后加()会报语法错误
JavaScript知识点整理 (二)的更多相关文章
- JS知识点整理(二)
前言 这是对平时的一些读书笔记和理解进行整理的第二部分,第一部分请前往:JS知识点整理(一).本文包含一些易混淆.遗漏的知识点,也会配上一些例子,也许不是很完整,也许还会有点杂,但也许会有你需要的,后 ...
- JavaScript知识点整理(一)
JavaScript知识点(一)包括 数据类型.表达式和运算符.语句.对象.数组. 一.数据类型 1) js中6种数据类型:弱类型特性 5种原始类型:number(数字).string(字符串).bo ...
- Javascript 知识点整理
1.十进制和十六进制相互转换 /* 十六进制转十进制 */ var test = FF; var x = parseInt(test ,16); //方法一 x = parseInt('0x'+tes ...
- JavaScript知识点整理
1.JavaScript的定义 JavaScript是一种专门为与网页交互而设计的脚本语言.有下列三部分组成 ①ECMAScript,提供核心语言功能 ②文档对象模型(DOM),提供访问与操作网页内容 ...
- 干货 Elasticsearch 知识点整理二
目录 root object mate-field 元数据字段 mapping-parameters 动态mapping(dynamic mapping) 核心的数据类型 精确匹配与全文检索 精确匹配 ...
- JavaScript易错知识点整理
前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...
- JavaScript 易错知识点整理
本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES ...
- JavaScript易错知识点整理[转]
前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...
- web前端面试知识点整理
一.HTML5新特性 本地存储 webStorage websocket webworkers新增地理位置等API对css3的支持canvas多媒体标签新增表单元素类型结构标签:header nav ...
随机推荐
- iOS开发之Segue
Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue). 每一个Segue对象,都有3个属性: (1)唯一标识 @property (nonat ...
- 深入理解ajax系列第九篇——jQuery中的ajax
前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而 ...
- java.lang.NoClassDefFoundError异常
1.错误信息 2.错误分析: JVM读到程序的第三行,会在当前路径 "D:\java" 下寻找com.yangquan.aolun这个包路径下的Cat类,但当前路径下根本就没有co ...
- PRINCE2考试一共多少道题
一.Foundation 基础级: 考试时长 1 个小时: 75 道单选题,其中 5 道随机测试题,无论对错都不计入考分:满分 70 分,获得 35 分才能通过考试,正确率 50%: 全程闭卷考试 二 ...
- 老李分享:android app自动化测试工具合集
老李分享:android app自动化测试工具合集 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...
- Combination Sum系列问题
主要使用方法是backtracking. Combination Sum Given a set of candidate numbers (C) and a target number (T), f ...
- JavaScript 数组操作方法
这些数组的操作方法会改变原来的数组.在使用 Vue 或者 Angular 等框架的时候会非常实用,使用这些方法修改数组会触发视图的更新. Array.prototype.push 该方法可以在数组末尾 ...
- Hibernate(四)之对象状态及一级缓存
一.Hibernate中的对象状态 1.1.瞬时态(临时态) 没有与Hibernate产生关联 与数据库中的记录没有产生关联(有关联就是与数据库中表的id相对应) 获得:一般都只直接创建(new) 瞬 ...
- ASP.NET自定义处理程序
要创建自定义处理程序,可以创建一个实现IHttpHandler接口的类. 该类有两个重要的参数:IsResuable属性和ProcessRequest方法.如果处理程序实例可以在不同的请求中重用,Is ...
- 初学VUE2.0
初学VUE2.0 (个人笔记,写完后发现好乱....下期使用markdown书写.) 概述 webstorm添加对VUE的支持 http://www.jianshu.com/p/142dae4f8b5 ...