首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

深入理解JavaScript(一)

一、基础JavaScript A.背景 1.早期没有异常 2.支持函数式编程(高阶函数、内置的map和reduce)和面向对象编程(对象、继承)的混合编程风格 B.语法 1.原始值包括布尔值、数字、字符串...2.typeof主要用于原始值,instanceof用于对象 二、为什么选择JavaScript 三、JavaScript的性质 A.JavaScript的本质 1.它是动态的 2.它是动态类型 3.它是函数式和面向对象的...4.它静默失败 5.它部署的是开源代码 6.它是网络平台的一部分 四、JavaScript是如何创造出来的 五、标准化ECMAScript 六、JavaScript的历史里程碑 七、JavaScript...启用严格模式可能会破坏再有的代码;细心打包;变量必须显式声明;函数必须在作用域的顶部声明;设置或删除不可改变的属性会抛出异常;不合格标识符不能删除;with语句不能再被调用;没有八进制的数字 ; 八、值 A.JavaScript...2.性能问题、代码可能会产生不可预期的结果、代码压缩工具无法压缩 十四、异常捕获 A.什么是异常捕获 两个原则:如果一处出错的含义不能被描述,那么就抛错;找到一个可以捕获错误的位置,捕获异常; B.JavaScript

1.3K30

深入理解 JavaScript 引擎

食堂老板:这块的知识不仅面试可能会问,学会了 JS 引擎的工作原理,可以更好的理解 JavaScript、更好的理解前端生态中 Babel 的词法分析和语法分析,ESLint 的语法检查原理以及 React...作为软件工程师,我们可以将它们统一理解为“电脑”,它们都是由中央处理器(CPU)、存储以及输入、输出设备构成。CPU 就像厨师,负责按照菜谱执行命令烧菜。...编译器可以把人类更容易理解的语言转换为机器指令。除此之外,我们还需要操作系统,来帮我们解决软件治理的问题。...为了对 V8 整体的工作机制有更好的理解,我们先来搞懂下面几个概念。 机器语言、汇编语言、高级语言 CPU 的指令集就是机器语言,CPU 只能识别二进制的指令。...了解了 V8 的大体工作机制,接下来我们继续深入,看一下 V8 核心模块的工作原理。

83720

深入理解JavaScript作用域

在上一篇文章 深入理解JavaScript 执行上下文 中提到 只有理解了执行上下文,才能更好地理解 JavaScript 语言本身,比如变量提升,作用域,闭包等,本篇文章就来说一下 JavaScript...理解作用域 先来理解一些基础概念: 引擎:从头到尾负责整个JavaScript程序的编译及执行过程。 编译器:负责语法分析和代码生成。...参考 深入理解JavaScript作用域和作用域链[2] 深入理解javascript原型和闭包系列[3] 作用域和词法作用域[4] 《你不知道的JavaScript (上卷)》 参考资料 [1]JS几种常见的错误类型...: https://github.com/funnycoderstar/blog/issues/98 [2]深入理解JavaScript作用域和作用域链: https://segmentfault.com.../a/1190000018513150 [3]深入理解javascript原型和闭包系列: https://www.cnblogs.com/wangfupeng1988/p/4001284.html [

68030

深入理解JavaScript函数 原

深入理解JavaScript函数 一、引言     从功能上理解,函数是一组可以随时运行的语句,是一段代码块,也是所谓的子程序。...在JavaScript中,函数实质上也是一种对象,是Function对象。函数通常会有参数与返回值(不是必须),在JavaScript中,函数的应用十分灵活,也有多种定义函数的方法。...二、几种定义函数的方式     在JavaScript中,可以通过函数语句来声明和定义函数、可以通过函数表达式来将创建函数,也可以使用Function构造方法来创建函数对象。...需要注意,函数表达式与函数语句的最大区别在于其可以省略函数名,即可以定义匿名函数,但是这种方式定义的函数在函数定义之前是不能够被调用的,这也很好理解JavaScript解释器在预处理期间只是解析除了addFunc...function textFunc2(name){ } console.log(testFunc.length); //0 console.log(textFunc2.length); //1 三、理解函数语句与函数表达式

22510

深入理解JavaScript中的this

this初理解 我们不限要理解的是this是在运行时绑定的,而非是在编写时绑定,他的上下文取决于函数调用时的各种条件,并且this的绑定和函数的声明位置基本上没有关系,一定要记住,他只取决于函数的调用方式...但是作用域“对象”无法通过 JavaScript代码访问,它存在于 JavaScript 引擎内部。...this的调用位置 this的调用位置是理解this绑定的一个前提条件,调用位置就是指函数在代码中被调用的位置,一定是调用位置而不是声明位置,两者是有区别的。...函数调用的位置决定了this的绑定,所以一定要理解调用位置是在哪,如果你感觉看着不容易看出来,可以使用chrome的调试工具来打断点,一步一步的看代码是如何走的。...参考文献:《你不知道的JavaScript

47330

深入理解JavaScript与DOM

Javascript和DOM一般经常作为一个整体,因为Javascript通常都是用来进行DOM操作和交互的。...image.png 通过这张图,理解起来就简单多了,但有个非常重要的知识点:那就是元素之间不能有空格,如果ul和li之间有空格的话,就会被认为是内容为空的text node节点,这样ul.childNodes...属性intro的文本元素,你可以很容易地通过DOM API来改变该元素的颜色: document.getElementById('intro').style.color = '#FF0000'; 为了理解这个...API的功能,我们一步一步分开来看就非常容易理解了: var myDocument = document; var myIntro = myDocument.getElementById('intro...总结 原生的DOM方法和属性足够我们日常的应用了,在今天的内容中,我们还覆盖到了DOM元素的操作以及相关的浏览器事件模型,同时也列举了一些例子便于大家理解。如果还有什么问题,欢迎留言讨论交流。

61630

深入理解JavaScript函数式编程

(本篇文章内容输出来源:《拉钩教育大前端训练营》部分参考书籍:《JavaScript忍者秘籍》《你不知道的JavaScript 卷一》关于函数部分的讲解 进行总结)❞ 本章重点掌握Javascript中的高阶函数知识以及函数式编程...JavaScript中的高阶函数 ❝高阶函数 ❞ 函数作为参数,如下代码实现的是循环遍历数组,通过传递参数回调函数可以拿到每个数组遍历的值在回调函数中进行相应的处理 //模拟forEach function...闭包的深入理解 <!...); console.log(curried(1, 2)(3)); console.log(curried(1)(2, 3)); 这一块是比较烧脑的,跟着调试工具来进行理解就非常容易理解了...fp.replace(/\s+/g,'_'),fp.toLower);//函数组合不需要处理数据 //返回新的函数来处理数据 console.log(f('Hello world')); 下面我们在写一个案例来更深入理解

4.2K30

javascript深入理解js闭包

一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。...我的理解是,闭包就是能够读取其他函数内部变量的函数。 由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。...,应该就算理解闭包的运行机制了。...(关于Javascript的垃圾回收机制将在后面详细介绍) 三、闭包内的微观世界   如果要更加深入的了解闭包以及函数a和嵌套函数b的关系,我们需要引入另外几个概念:函数的执行环境(excution context...六、结语 理解JavaScript的闭包是迈向高级JS程序员的必经之路,理解了其解释和运行机制才能写出更为安全和优雅的代码。

950101

JavaScript闭包的深入理解

闭包算是javascript中一个比较难理解的概念,想要深入理解闭包的原理,首先需要搞清楚其他几个概念: 一、栈内存和堆内存 学过C/C++的同学可能知道,计算机系统将内存分为栈和堆两部分(大学的基础课...栈内存(连续的存储空间,类似数据结构中的栈):主要用来存放数值、字符、内存地址等小数据 堆内存(散列的存储空间,类似数据结构中的链表):存放可以动态变化的大数据 二、基本类型和引用类型 JavaScript...(注:计算机关于内存的管理,跟我们正常想到的不一样,例如硬盘恢复就是利用这个原理,为删除的内容重新建立一个指向即可访问) 二、变量作用域 javascript中变量又分为全局变量和局部变量 全局变量:在全局环境中声明的变量...局部变量:在函数中声明的变量 当函数在执行时,会创建一个封闭的执行期上下文环境,函数内部声明的变量仅可在函数内部使用,外部无法访问,而全局变量则在任何地方都可以使用 三、预编译 JavaScript的运行为三步...undefined,b:undefined} * 3---testAO{a:2,b:undefined} * 4---testAO{a:2,b:1,c:function(){}} */ 四、作用域链 每个JavaScript

1.2K70

深入理解 JavaScript Prototype 污染攻击

为了简化编写JavaScript代码,ECMAScript 6后增加了class语法,但class其实只是一个语法糖。...原型链继承 所有类对象在实例化的时候将会拥有prototype中的属性和方法,这个特性被用来实现JavaScript中的继承机制。...比如,Object.prototype的__proto__就是null JavaScript的这个查找的机制,被运用在面向对象的继承中,被称作prototype继承链。...以上就是最基础的JavaScript面向对象编程,我们并不深入研究更细节的内容,只要牢记以下几点即可: 每个构造函数(constructor)都有一个原型对象(prototype) 对象的__proto...__属性,指向类的原型对象prototype JavaScript使用prototype链实现继承机制 0x03 原型链污染是什么 第一章中说到,foo.

17020

深入理解 JavaScript 回调函数

JavaScript 回调函数是成为一名成功的 JavaScript 开发人员必须要了解的一个重要概念。但是我相信,在阅读本文之后,你将能够克服以前使用回调方法遇到的所有障碍。...在开始之前,首先要确保我们对函数的理解是扎实的。 快速回顾:JavaScript 函数 什么是函数? 函数是在其中有一组代码的逻辑构件,用来执行特定任务。...让我们深入研究一下,以便使你准确了解在哪种情况下使用回调。 ? 获取并显示消息的函数 在上面的代码片段中,首先执行 getMessage()函数,然后执行 displayMessage() 。...Javascript 回调是异步的吗? JavaScript 被认为是单线程脚本语言。单线程是指 JavaScript 一次执行一个代码块。...with username 'Jhon' */ 9 console.log(userData); 10 }); 11 }); 12}); 从上面的代码片段中,你可以看到代码变得更加难以理解

1.7K20

深入理解JavaScript数据类型转换

JavaScript是一门灵活多变的编程语言,其中数据类型转换是其核心特性之一。在JavaScript中,数据类型转换涉及将一个数据类型转换为另一个,以满足不同操作的需求。...这个过程可能会引发一些意外结果,因此理解JavaScript中的数据类型转换至关重要。本文将深入探讨JavaScript数据类型转换,包括隐式类型转换和显式类型转换,以及如何避免常见的陷阱和错误。...隐式类型转换在JavaScript中,隐式类型转换是自动执行的数据类型转换过程。这意味着JavaScript会在某些情况下自动将一个数据类型转换为另一个,以执行操作或比较值。...理解这些情况和规则对于编写健壮的JavaScript代码至关重要。1. 字符串拼接JavaScript中,加法运算符(+)通常用于数字相加,但它还可以用于字符串拼接。...了解类型转换的工作原理,避免常见的陷阱和错误,将有助于您编写更健壮的JavaScript代码。希望本文能够帮助您更深入理解JavaScript的数据类型转换,提高您的编程技能。

29011

深入理解JavaScript 执行上下文

只有理解了执行上下文,才能更好地理解 JavaScript 语言本身,比如变量提升,作用域,闭包等 执行上下文 执行上下文是当前代码的执行环境。...参考 JavaScript深入之执行上下文栈[1] JavaScript深入之执行上下文[2] JavaScript深入之变量对象[3] 深入理解JavaScript系列(11):执行上下文(Execution...Contexts)[4] 《JavaScript高级程序设计 (第三版)》 参考资料 [1] JavaScript深入之执行上下文栈: https://github.com/mqyqingfeng/Blog.../issues/4 [2] JavaScript深入之执行上下文: https://github.com/mqyqingfeng/Blog/issues/8 [3] JavaScript深入之变量对象:...https://github.com/mqyqingfeng/Blog/issues/5 [4] 深入理解JavaScript系列(11):执行上下文(Execution Contexts): https

34620

深入理解 JavaScript 中的高阶函数

高阶函数是 JavaScript 中的一个重要概念,它们为函数式编程提供了强大的工具。高阶函数不仅可以作为参数传递给其他函数,还可以作为返回值。...在本文中,我们将深入探讨高阶函数的原理、应用、示例和高级用法。什么是高阶函数?在 JavaScript 中,高阶函数是函数,它们接受一个或多个函数作为参数,并且/或者返回一个新函数。...高阶函数可以用来处理函数作为一等公民的特性,这是 JavaScript 的一个重要特点。高阶函数通常包括以下几种类型:函数作为参数:高阶函数接受一个或多个函数作为参数,用于执行某种操作。...结语--高阶函数是 JavaScript 编程中的强大工具,它们允许你以更抽象的方式思考和处理函数。...深入理解高阶函数的工作原理、用法和应用场景将使你成为更高效的 JavaScript 开发者,能够更好地处理函数和数据。

22910
领券