![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
js
cjx177187
这个作者很懒,什么都没留下…
展开
-
js---原型链1
构造函数分类原型链对象的成员操作原型对象的操作根据函数的业务分类取了不一样: 构造函数 闭包 回调 事件监听器等等 一般专门用于创建对象的函数 就是构造函数 同一个函数创建出来的对象们 具有相同的空间结构和功能 每一个函数创建出来的对象是不相同的,有哪些构造函数呢? 1.自定函数 --->书写时必须用new 2.官方提供的函数:Function Object String Number Bloolean Array Da原创 2022-06-25 10:55:37 · 45 阅读 · 0 评论 -
js----Data
小知识: 人类1970-01-01 00:00:00 全世界统一"调表" var dt=new Date() console.log(dt.getDate())//几号 console.log(dt.getDay())//星期几 console.log(dt.getFullYear())//4位数的年份 console.log(dt.getYear())//3位 后面两位代表年份 console.log(d原创 2022-06-24 14:25:07 · 65 阅读 · 0 评论 -
number类型
Number类型 应该是 ECMAScript 中最令人关注的数据类型了,这种类型用来表示整数和浮点数值(浮点数值在某些语言中也被称为双精度数值)。为支持各种数值类型, ECMA-262 定义了不同的数值字面量格式。1. 整数数值最基本的数值字面量格式是十进制整数,十进制整数可以像下面这样直接在代码中输入:编辑除了以十进制表示外,整数还可以通过八进制(以 8 为基数)或十六进制(以 16 为基数)的字面值来表示。其中,八进制字面值的第一位必须是零(0) ,然后是八进制数字序列(0~7)原创 2022-06-25 10:53:55 · 265 阅读 · 0 评论 -
数组的内置功能
小知识:arr.join()=====>arr.toString()====>会更改原数组,空数组也可以用不会报错splice(a,b)//从下标为a开始删除b个元素,并返回删除得元素原创 2022-06-24 14:23:51 · 60 阅读 · 0 评论 -
字符串的内置功能2
====>和substring()差不多注意是取的是左开右闭区间 小知识: 获取当前地址栏的地址=====>window.Location.href ====>输出一个数组,可以不传参原创 2022-06-24 14:21:37 · 44 阅读 · 0 评论 -
对象的成员访问和检测
对象成员检测 1.instanceof:判断该对象是否为另一个对象的实例。2. isPrototypeOf:判断一个对象象是否为一个实例的原型。3. hasOwnProperty() hasOwnProperty:判断对象是否有某个特定的属性,(注意说的是对象的属性,而不是对象原型的属性)必须用字符串指定该属性。4. propertyIsEnumerable():判断给定的属性是否可以用 for...in 语句进行枚举。由于 for ... in 枚举是包含原型链上的属性的,但原创 2022-06-24 14:27:34 · 70 阅读 · 0 评论 -
字符串和包装对象
小练习:计算一个字符串中“的”字的次数拓展:字符串的点语法原创 2022-06-24 14:23:25 · 53 阅读 · 0 评论 -
初识js作用域链
来看一下几个乍看看不懂的概念:举例:a函数被定义时发生如下过程:先不要细琢磨上面GO里放置的各个属性。上面a.[[scope]]还没有构成一个链,只有GO对象的存在,下面继续。a函数被执行时,发生如下过程:a函数执行前一刻所产生的AO对象放到了a函数作用域a.[[scope]]的顶端;现在a.[[scope]]上已构成一个链.再继续研究刚刚的例子:也就是说b函数刚刚出生时所在的环境是a执行的结果,直接给b函数的出生创造好了环境。b函数被执行时,发生如下过程:b函数执行前一刻产生的AO对象放置在b.[[sco原创 2022-06-23 12:49:07 · 51 阅读 · 0 评论 -
js----劫持
原理:Javascript劫持与CSRF攻击原理非常相似,唯一不同的是,CSRF是模拟你的身份去发送请求,JavaScriptHijacking是模拟你的身份,窃取你在服务器上的私隐信息。Javascript劫持通过重写Object的__defineSetter__方法来实现钩子。服务器返回的数据是数组类型。浏览器会将数组类型当作JS代码运行,创建了一个数组对象并设置属性。重写的方法会先执行,方法中可获得设置的属性,使攻击者能够将JSON数据外发。obj.say.call(obj2) 1.所有原创 2022-06-24 14:26:31 · 541 阅读 · 0 评论 -
函数的实参和形参
this的练习 构造函数 new关键字 原型 笔试题 this基本上就代表的是对象 在及其少的时候 this不是对象=>call apply bind小练习:关于形参和实参,还有以下几点需要注意: 函数是js数据类型中的哪一种? js数据类型 只有两种:基本数据 引用数据: object function...原创 2022-06-25 11:48:57 · 1186 阅读 · 0 评论 -
用作用域链分析笔试题
分析:刚开始定义一个fn函数,函数内部只有一个GO对象当调用fn函数后,会生成一个AO对象,并创建fm函数运行fm(100),及运行fm函数,fm函数内部产生一个AO对象====>fg函数创建运行fg(90)函数输出结果====>123 100 90再次调用fm函数,执行fm(200);再次创建一个fg函数执行fg(90)函数执行完毕,输出结果====>123 200 90在看一个例子,加深理解:分析:...原创 2022-06-23 12:54:30 · 45 阅读 · 0 评论 -
js---劫持2
分析: 根据官方的源代码推出一些规律 1.所有的函数对象都有call方法---Function.prototype 有call方法 2.obj.say.call(obj2) 运行的函数是say函数(哪个函数调call方法就是哪个函数运行) 3.obj.say.call(obj2) 调用这个函数的对象是obj2(obj2调用say函数)...原创 2022-06-24 14:27:01 · 80 阅读 · 0 评论 -
object类型
Object数据类型ECMAScript 中的对象其实就是一组数据和功能的集合。对象可以通过执行 new 操作符后跟要创建的对象类型的名称来创建。而创建 Object 类型的实例并为其添加属性和(或)方法,就可以创建自定义对象,如下所示:• 通过点(.)访问对象的属性:obj.name;• 通过点(.)访问对象的方法:obj.say();...原创 2022-06-25 10:54:32 · 166 阅读 · 0 评论 -
js---遍历器
遍历器 取出数据容器中的每一个元素的工具1.for最重要 兼容性好2.for in 3.forEach====>三个参数,元素,下标和数组4.myforEach ====>自己设置函数 5.map()====>对原来的数据进行操作,并返回新数组 =====>三个参数,元素,下标和数组6.filter some every reduce reduceRight 对数组内元素进行选择...原创 2022-06-24 14:24:32 · 66 阅读 · 0 评论 -
js作用域链分析
函数生成了就会有个属性[[scopes]]作用域“数组”(只能用引擎使用) 函数调用时生成AO对象 会把AO对象放在scopes每次调用都会放在scopes前面(),【顶部】每个函数scopes数组中天生就有一个AO对象 就是这个函数得上层得AO 举个例子吧: fn(100)//AO:{n:undef==>100,a:undef==>20,function fm(){}} fn()//AO:{n:undef,a:undef==>20,function fm(){}} 函数有属性原创 2022-06-23 12:53:53 · 47 阅读 · 0 评论 -
JSON数据和解析
JSON=====>JavaScript Object NotationJSON是一个字符串 常常用于网络传输数据的一种字符json数据是一种轻量级的数据交换格式,它基于一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。JSON对值的类型和格式有严格的规定PS: 需要注意的是,空数组和空对象都是合格的JSON值,null本身也是一个合格的JSON值。JSON 的语法规则JSON 的语法规则十分简单,可称得上“优雅完美”,总结起来有:其中j原创 2022-06-24 14:28:17 · 272 阅读 · 0 评论 -
js---函数的嵌套
fn函数中嵌套了一个对象,对象中嵌套了一个函数,最后的返回值是对象;所以我们调用fn函数是obj中的函数不会运行我们打印re,发现输出的是一个对象,对象中嵌套一个函数;那我们怎样才能让obj中的函数运行呢?我们发现打印fn函数的运行结果返回的是一个函数,那我们是不是只需要调用obj里面的这个函数就可以使其运行了呢我们使用点语法调用obj里面的fn属性的函数。...原创 2022-06-25 11:30:16 · 573 阅读 · 0 评论 -
Js----Math
Math对象 属性: E 返回算术常量 e,即自然对数的底数(约等于2.718)。 console.log(Math.E) LN2 返回 2 的自然对数(约等于0.693)。 LN10 返回 10 的自然对数(约等于2.302)。 LOG2E 返回以 2 为底的 e 的对数(约等于原创 2022-06-24 14:25:40 · 64 阅读 · 0 评论 -
原型链初识
ECMAScript需要通过原型链来实现继承。如何构成原型链?原型链上属性的增删改查Object.creat(原型);绝大多数对象的最终都会继承自Object.prototype原型链每一个对象都从原型继承属性,直到null结束。所有的内置构造函数都有一个继承自Object.prototype的原型,我们可以看下原型链:vararr1=newArray(1,2,3);//arr1.__proto__-->Array.prototype的原型__proto__-->Object.prototype的原型__p原创 2022-06-25 10:55:02 · 84 阅读 · 0 评论 -
字符串的内置功能
小知识:根据上面的知识做一个小练习【自定义一个函数,使字符串的首字母大写】: 首字母大写 思路: 1.在字符串对象的原型中添加一个工具函数 2.在工具函数中用代码实现想要的操作 3.调用工具函数实现功能...原创 2022-06-23 12:55:22 · 53 阅读 · 0 评论 -
js---笔试题
解析时我用大括号代表作用域: 全局socoped:{ var a=fun(0) socoped[fun(0)]:{ var n=0; var o; console.log(o)//打印undef return {fun: function(m原创 2022-06-22 15:40:26 · 308 阅读 · 0 评论 -
函数自调用
函数自调用就是函数内部运行再次调用函数本身运行,这意味着每一次函数运行都会触发函数再次运行,不用额外的调用函数看个例子吧:我们可以看到fn函数内部有两个语句一个打印666的语句和一个调用fn函数的语句,当外部调用的fn函数的语句运行后,fn函数运行打印666;此时再次运行fn函数的调用,先会在函数内部寻找fn函数,没找到就会去全局中找。所以会再次运行fn函数,再次打印666,再调用fn函数,一直无限循环下去。但是这样一直循环下去就会让浏览器超负荷,这不是我们想看到的,所以怎样解决呢?既要使函数循环运行,但是原创 2022-06-23 12:45:17 · 1883 阅读 · 2 评论 -
对象的成员操作
对象的成员操作原创 2022-06-21 16:56:23 · 53 阅读 · 0 评论 -
js---作用域
作用域:标识符(变量和函数名) 这些地方就是指的 函数的代码块内部和函数代码块外部 规则:函数内部的代码块可以访问内部的标识符,依然可以访问外部的标识符 规则:函数外部可以访问外部的标识符,但是不能访问函数内部的标识符 总:通常函数内部标识符为局部标识符 例题: 分析:调用fn函数,传入参数a+10,fn()函数中没有a的值,就去函数的父级去找,fn函数的父级是全局,即a=200,打三个打印a为210第一个打印a,在fm函数内此时fm函数还没有调用传参原创 2022-06-22 15:35:46 · 55 阅读 · 0 评论 -
js----回调函数2
小知识点: jquery函数在开发中 就是一个工具函数 ,执行某个功能产生的数据 调用回调函数 执行业务代码 callback函数就是传入的业务函数 做个小练习吧:原创 2022-06-22 15:39:13 · 57 阅读 · 0 评论 -
js----练题
小知识点: a+b+c*e 先取c的值和e的值,计算c*e;取a和b的值,计算a+b的值;将c*e的值和a+b的值再相加 【 == 判断值是否相等 === 判断值是否相等,类型是否相等】原创 2022-06-22 15:41:02 · 58 阅读 · 0 评论 -
Javascript----原型链
继承-原型链ECMAScript需要通过原型链来实现继承。如何构成原型链?原型链上属性的增删改查Object.creat(原型);绝大多数对象的最终都会继承自Object.prototype原型链每一个对象都从原型继承属性,直到null结束。所有的内置构造函数都有一个继承自Object.prototype的原型这就是传说中的原型链,简单总结下:一、构造函数、原型和实例的关系a,构造函数都有一个属性prototype,这个属性是一个对象,是Object的实例;b,原型对象prototype里有一个con原创 2022-06-21 16:54:25 · 120 阅读 · 0 评论 -
js---回调函数
什么是回调函数: 一个回调函数,也被称为高阶函数,是一个被作为参数传递给另一个函数(在这里我们把另一个函数叫做“otherFunction”)的函数,回调函数在otherFunction中被调用。一个回调函数本质上是一种编程模式(为一个常见问题创建的解决方案),因此,使用回调函数也叫做回调模式。回调函数怎样运行: 因为函数在Javascript中是第一类对象,我们像对待对象一样对待函数,因此我们能像传递变量一样传递函数,在函数中返回函数,在其他函数中使用函数。当我们将一个回调函数作为参数传递给另原创 2022-06-22 15:38:42 · 58 阅读 · 0 评论 -
js-----闭包初识
官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。 举个例子:1 闭包的特点简单的说,Javascript允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。优点:可以访问局部变量。缺点:局部变量一直占用内存,内存占用严重,还容易造成内存泄漏(内存被占用,剩原创 2022-06-22 15:37:30 · 72 阅读 · 0 评论 -
原型链案例
分析:Element( )函数的返回值不是一个引用对象,所以el=element(),并给element函数中增加一个height属性,值为40px 执行以后 用Div创建的对象有Element创建的对象的功能 Div( )函数的返回值不是一个引用对象,所以div1=Div(),并给Div函数中增加一个className属性,值为box div1.value=Div.value=123 div1.innerHtML=Div.innerHtML="hello"div1=Div对象={value:123,inn原创 2022-06-21 16:55:35 · 121 阅读 · 0 评论 -
函数自调用2
小知识: 实参===>调用函数时传入的数据(数据直接量,变量) arguments.lenght //实参数量原创 2022-06-23 12:45:58 · 36 阅读 · 0 评论 -
原型练习题
分析:后面的代码用child函数创建的对象的原型对象是 child1.prototype=o1{a:1,b:[1,2,1],c:{demo:5},show:上面的函数,__proto__:o3{}}parent=o2{a:1,b:[1,2,1],c:{demo:5},show:上面的函数,__proto__:o3{}}child2={a:12,change:上面的函数,__proto__:o1}child1={a:11,change:上面的函数,__proto__:o1}运行Parent()函数 conso原创 2022-06-21 16:56:55 · 195 阅读 · 0 评论 -
js预编译
js完成解释执行分为三个步骤: 1.语法分析;2.预编译(全局预编译、函数预编译);3.执行语句。 函数调用时 怎么运行代码的? 1.分析代码是否正确 符号 词法分析 var var=20; var 01js=100 var a; var a, 2.隐式操作 ==>原创 2022-06-23 12:46:42 · 36 阅读 · 0 评论 -
回调函数练习题
小练习:原创 2022-06-22 15:39:47 · 147 阅读 · 0 评论 -
符号优先级
运算符优先级JavaScript中的运算符优先级是一套规则。该规则在计算表达式时控制运算符执行的顺序。具有较高优先级的运算符先于较低优先级的运算符执行。例如,乘法的执行先于加法。做个小练习吧:输出函数function(){console,log(111);return[10,20,30]} 小知识: new fn()====>(new fn()) new obj.fn()====>( new (obj.fn) () ) new new foo.rank()()======>( new ( new (原创 2022-06-23 12:44:08 · 217 阅读 · 0 评论 -
函数运行时的作用域
函数是一个引用数据,标识符可以在任何作用域去引用一个函数 但是:函数运行时的作用域在哪里? 函数在生成(定义和声明)时 所在用在的作用域 函数运行时 是在 写函数代码的地方运行代码 不是在调用代码的地方运行代码举个例子:...原创 2022-06-22 15:36:57 · 59 阅读 · 0 评论 -
综合题(this,作用域,原型,符号优先级)
分析: var getName; function Foo() { getName = function() { console.log(1); } return this; } function getName() {console.log(5)}原创 2022-06-23 12:44:47 · 57 阅读 · 0 评论 -
js--隐式提升
变量能隐式提升函数体也能隐式提升:变量名提审声明,函数提升的时整个函数体对象内部的方法不会隐式提升====>会报错同名标识符提升问题:变量与函数同名时 变量然后函数 同名标识符提升问题:变量与变量同名时 先到先扫描同名标识符提升问题:函数与函数同名时 先到先扫描口诀:形(形参和变量)实函运 1.先隐式提升 var a; 2.在实参赋值 a=20 3.函数提升 function a(){}提升 4.函数运行...原创 2022-06-22 15:36:26 · 72 阅读 · 0 评论 -
局部和全局预编译
局部预编译 函数再调用之后 运行代码之前 引擎对函数预编译 1.每次调用都会创建一个AO象====>Action Objective 2.局部变量和形参变量添加为AO得成员,值为undefined(隐式声明提升) 3.把传入的实参赋值给AO对象(拓展知识:arguments和形参变量相关技术) 4.把局部函数得名字作为AO对象的成员名,函数体赋值给AO对象(局部函数得隐式声明提升) 全局预编译原创 2022-06-23 12:48:38 · 91 阅读 · 0 评论 -
js----闭包
闭包===>具有作用域得代码块以下都不是闭包 label1:{ }; { var a=20; var b=30; }; if(){}; for(){} 闭包1.函数内部的变量外部是无法访问滴,可以通过返回一个闭包 通过外部操作闭包来间接访问函数内部得变量,闭包可以决定这个变量的操作方式 (利用了函数得作用域和运行时作原创 2022-06-22 15:38:01 · 128 阅读 · 0 评论