JS高级
文章平均质量分 50
又菜又卷
这个作者很懒,什么都没留下…
展开
-
JS高级--深入JavaScript运行原理
一、浏览器工作原理当我们在浏览器输入域名之后,DNS服务器就会自动对域名进行解析,将域名地址转为IP地址。根据IP地址浏览器可以从对应服务器里拿到一个index.html文件,随后浏览器内核将对HTML进行解析。1、浏览器内核概念:浏览器内核(指的是浏览器的排版引擎,也称为浏览器引擎(browser engine)、页面渲染引擎(rendering engine) 或样版引擎)浏览器内核其实就是浏览器的渲染引擎,它的作用就是渲染html页面。它的作用有点类似xml解析器。它通过读取htm原创 2022-05-14 20:01:26 · 282 阅读 · 0 评论 -
JS高级--作用域与作用域链
一、作用域1、理解就是一块地盘,一个代码段所在的区域 它是静态的(相当于上下文对象),在编写代码时就确定了2、分类全局作用域 函数作用域 没有块作用域(ES6有了)3、作用隔离变量,不同作用域下同名变量不会有冲突二、作用域与执行上下文区别与联系区别一:全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时 全局执行上下文环境是在全局作用域确定之后, js代码马上执行之前创建 函数执行上下文环境是在调用函数时, 函数体代码.原创 2022-04-08 21:15:19 · 174 阅读 · 0 评论 -
JS高级--执行上下文与执行上下文栈
一、变量提升与函数提升1、函数声明提升* 通过var定义(声明)的变量,在定义语句之前就可以访问到* 值:underfine2、函数声明提升* 通过function声明的函数,在声明函数之前就可以直接调用* 值:函数定义(对象)3、问题:变量提升和函数提升是如何产生的?console.log(a) // undefine 变量提升fn1() // 可执行 fn1() 函数提升fn2() // 不可执行 变量提升 var a = 3function fn1原创 2022-04-07 22:42:10 · 237 阅读 · 1 评论 -
JS高级--原型与原型链
一、原型函数的prototype属性* 每个函数都有一个prototype属性,它默认指向一个object空对象(即称为:原型对象)* 原型对象中有一个constructor属性,它指向函数对象function Fun() {}console.log(Fun.prototype) // 默认指向一个空对象// 原型对象中有一个constructor属性,它指向函数对象 console.log(Fun === Fun.prototype.constructor) // true原创 2022-04-06 22:37:28 · 338 阅读 · 0 评论 -
JS高级--函数中的this
一、this是什么1、任何函数本质上哦都是通过某个对象调用的,如果没有指定对象this就是window2、所有的函数内部都有一个变量this3、this的值是调用函数的当前对象二、如何确定this的值text() // windowp.text() // pnew text() // 新创建的对象p.call(obj) // obj1、以函数形式调用时,this永远都是window2、以方法形式调用函数时,this就是调用方法的那个对象3、以构造函数形式调用时,原创 2022-04-04 15:55:20 · 511 阅读 · 0 评论 -
JS高级--IIFE
一、理解全称:Imemediately-Invoked Function Expression 立即执行函数表达式二、作用1、隐藏实现2、不会污染外部(全局)命名空间3、用它来编码js模块// 匿名函数自调用 === IIFE;(function() { console.log('aaa')})();(function() { let a = 3 console.log(a) // 3})()let a= 4console.log(a) //原创 2022-04-06 14:54:21 · 233 阅读 · 0 评论 -
JS高级--函数
一、什么是函数具有实现特定功能的n条语句的封装体只有函数是可以执行的,其他类型的数据不能执行二、为什么要用函数提高代码复用便于阅读交流三、如何定义函数1、函数声明function myFunction(a, b) { return a * b}2、表达式var x = function (a, b) {return a * b}四、如何调用(执行)函数1、text() 直接调用function myFunction(a, b) {原创 2022-04-04 15:39:54 · 855 阅读 · 0 评论 -
JS高级--对象
一、什么是对象多个数据的封装体 / 用来保存多个数据的容器一个对象代表现实中的一个事务二、为什么要用对象统一管理多个数据三、对象的组成1、属性:由属性名(字符串)和属性值(任意类型)组成2、方法:一种特别的属性(属性值为函数的属性)四、如何访问对象内部的数据1、.属性名 简单有效,优势不能用2、[ ‘属性名’ ] 编码麻烦,通用必须使用[ ‘属性名’ ]的方式访问内部数据的情况:1、属性名包含特殊字符:— 、空格等等2、变量名不确定//原创 2022-04-04 15:04:44 · 242 阅读 · 0 评论 -
JS高级--数据、变量和内存(相关问题)
一、关于赋值与内存的问题问题: var a = xxx ,a的内存中到底保存的是什么?若 xxx 是基本数据,a的内存中保存的就是这个数据若 xxx 是对象,a的内存中保存的是对象的地址值若 xxx 是一个变量,保存的就是 xxx 的内存内容(可能是基本数据,也可能是地址值)二、关于引用变量赋值问题1、n个引用变量指向同一对象,通过一个变量修改对象内部数据,其他所有变量看到的是修改之后的数据var obj1 = { name: 'Tom'}var obj2 =原创 2022-03-25 23:21:01 · 462 阅读 · 0 评论 -
JS高级--数据、变量和内存
一、什么是数据?数据是存储在内存中特定信息的“东东”,本质上是 011101010... 数据的特点:可传递、可运算二、什么是内存?内存是内存条通电后产生的可储存数据的空间(临时的) 内存的产生和死亡:内存条(电路板)==》通电 ==》产生内存空间 ==》存储数据 ==》处理数据 ==》断电 ==》内存空间和数据都消失一块小内存的两个数据:内部储存的数据 地址值内存分类:栈:全局变量/局部变量 堆:对象注意:函数(对象)本身在堆里,但函数名(表示对象的变量)在栈中原创 2022-03-25 22:46:31 · 366 阅读 · 0 评论