JS
M78_国产007
前端越学越不懂 难受嗷
展开
-
初步认识前端网页异步更新技术——AJAX
其中,method参数是必须提供的-用于指定你想用来发送请求的HTTP方法(GET,POST,PUT,DELETE或HEAD)。当服务器响应时,在接收消息体之前,如果存在任何消息体的话,XMLHttpRequest对象将把readyState设置为3(正在接收中)。在调用open()方法后,XMLHttpRequest对象把它的readyState属性设置为1(打开)并且把responseText、responseXML、status和statusText属性复位到它们的初始值。此时,响应已经被完全接收。.原创 2022-07-29 23:28:49 · 968 阅读 · 0 评论 -
前端的三种缓存技术cookie、localStorage、sessionStorage
localStorage、sessionStorage、cookie三者的区别(1)存储大小cookie数据大小不能超过4k;sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大;(2)有效时间localStorage存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;sessionStorage数据在当前浏览器窗口关闭后自动删除;cookie设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭;https。...原创 2022-07-23 22:10:14 · 1259 阅读 · 0 评论 -
ES6异步编程——任务队列和事件循环
任务指的是js代码中运行的代码。一个函数就是一个任务,有一个函数fn,fn()代表fn任务运行、脚本也是一个任务、计时器也是一个任务 、 Promise也是一个任务。任务又可分为同步的任务和异步的任务同步任务:任务按照代码的执行顺序执行,执行完上一个任务才会执行下一个任务。例如: 异步任务:任务不按照代码的顺序执行,程序执行到异步任务时,新开一个线程运行,将异步任务放到新开的线程内运行,当子线程中的任务全部运行完毕后,将异步任务的运行结果(即异步函数的运行结果)传入回调函数,当主线程的任务全部运行完毕原创 2022-07-13 23:10:06 · 335 阅读 · 0 评论 -
Promise对象
在学习Promise之前,我们了解什么是同步什么是异步。同步:脚本按顺序执行,执行完当前任务后,才会执行下一个任务。写个代码说明就明白了异步:不按照代码的顺序执行,一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。想要学会异步编程,就必须精通回调函数,异步的设计思想就是回调函数,如果回调函数没有学好的同学可以先去把回调函数学好,再学这个知识。Promis原创 2022-07-13 19:44:37 · 238 阅读 · 0 评论 -
ES6新增的模块化
在引入模块化之前,引入外部js文件通过通过这个方法导入的js文件,js文件中声明的全局变量 就会污染当前html文件的全局。在ES6时,引入了模块化来解决这个缺陷,每个模块都有自己的上下文,每一个模块内声明的变量都是局部变量,不会污染全局作用域。模块化的特点:1、避免了变量的全局污染;2、ES6 的模块自动开启严格模式,不管有没有在模块头部加上 'use strict';3、模块中可以导入和导出各种类型的变量,如函数,对象,字符串,数字,......原创 2022-07-12 19:33:26 · 588 阅读 · 2 评论 -
ES6新增的class类
在学习类之前,先明确JS是什么语言。js是一个基于面向对象设计的单线程的静态脚本语言。面向对象(类 实例对象 继承 封装 多态);基于面向对象设计 本质没有继承 、类、多态等语法,按照自己的语法特征(原型),来模拟其效果;单线程 代码只能一个业务一个业务的执行;静态 一段代码中间一行出现错误,不能一开始就出现发现错误,要运行到错误代码才能发现错误,如果是动态语言一开始就会检测到错误;脚本语言 又称嵌入式语言 灵活在ES6中为了更好的把js设计成面向对象的语言的语法特征,提出了class类。clas原创 2022-07-12 16:33:47 · 215 阅读 · 0 评论 -
ES5中数组对象有哪些方法和ES6新增了哪些方法
在ES5中数组对象常见的方法:1、concat() 连接两个或者更多数组,并返回结果2、join() 把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分割3、pop() 删除并返回数组的最后一个元素,与之相似的是shift() 删除并返回数组的第一个元素4、 push 向数组的末尾添加一个或更多元素,并返回新数组的长度,与之相似的是unshift() 向数组的头部添加一个或者多个元素,并返回新的长度 5、reverse() 颠倒数组中元素的顺序 6、sort() 对数组原创 2022-07-11 23:03:16 · 404 阅读 · 0 评论 -
Map对象的应用——设计一个购物车
要求:能够加减删除商品、计算出总价;用控制台打印代替页面显示;还未涉及后端获取数据,先自己写一个假数据运用到Map对象的set(设置)、get(获取)、delete(删除)、clear(清空)方法代码实现:...原创 2022-07-11 19:47:01 · 183 阅读 · 0 评论 -
ES6新增的箭头函数
箭头函数定义:箭头函数提供了一种更加简洁的函数书写方式。基本语法是:参数=>函数体或(参数)=>{函数体}对于两种写法,一种不写括号,一种写括号,那什么时候写括号呢?说明:当没有参数或者有多个参数时,必须写小括号;当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回。注意特殊情况:当箭头函数要返回对象的时候,为了区分于代码块,要用 () 将对象包裹起来。相比于普通函数:简化了写法;明确了this。传统JS的this是在运行的原创 2022-07-10 18:14:45 · 532 阅读 · 0 评论 -
ES6内置对象的新方法新特性
字符串相关方法字符串识别:1、includes()返回布尔值,判断是否找到参数字符串。2、startsWith()返回布尔值,判断参数字符串是否在原字符串的头部。3、endWith()返回布尔值,判断参数字符串是否在原字符串的尾部。字符串重复:1、repeat()返回新的字符串,表示将字符串重复指定次数返回。字符串补全:1、padStart:返回新的字符串,表示用参数字符串从头部补全原字符串。2、padEnd:返回新的字符串,表示用参数字符串从尾部补全原字符串。代码展原创 2022-07-09 23:04:47 · 276 阅读 · 0 评论 -
ES6的高级赋值方法——解构赋值
概述解构赋值时对赋值运算符的扩展,是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值,在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取。简单来说,解构赋值就是解析数据源,然后按照数据模型进行取值,再赋值给变量。拆开来看,解构:按照数据模型取出数据源中的数据 赋值:然后赋值给模型变量写法:变量修饰符 数据模型=数据源通过代码具体说明:看到这里大家应该对结构赋值有了一定的了解,它是赋值的一种高级写法。注意在数组的解构中,解构的目标若为可遍历对象,皆可进行解构赋原创 2022-07-09 14:58:34 · 225 阅读 · 0 评论 -
ES6新增的变量修饰符let和const、新增的基本数据类型symbol
ES6简单介绍ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。新增的变量修饰符let和constlet 是javascript的关键字 它的特性:1、在一代码块内,变量运用let关键字声明后,该代码块就拥有了局部作用域(称原创 2022-07-08 19:45:17 · 308 阅读 · 0 评论 -
正则表达式
字符串的技术:正则表达式属于字符串的相关操作字符串的格式有很多种,可以按照某种规则来约束它正则表达式 是js的一种对象有两种方法创建:1、直接量 2、new RegExp()它的三个属性i,g,m 写在正则表达式后面i:不区分大小写g:全局匹配m:.........原创 2022-07-08 19:00:13 · 135 阅读 · 0 评论 -
JS中的JSON(推出对象深拷贝)
全称:JavaScript Object NotationJSON是一个字符串常常用于网络传输数据的一种字符串格式常见的字符串格式:querystring查询字符串“name=karen&pwd=abc123&count=20"template模板字符串`<div styLe="">666</div>`JSON json字符串‘{"name " : " karen" , "its" : [ "heLLo" , "h5"]}’JSON解析..原创 2022-07-07 21:16:59 · 320 阅读 · 0 评论 -
对象成员检测
1.instanceof:判断该对象是否为另一个对象的实例。如果在Child函数的prototype属性中加入Parent的实例化对象,在检测成员时child也能够检测为Parent的实例对象,所以得出结论,能够检索到原型上。代码展示:2. isPrototypeOf:判断一个对象是否为一个实例的原型。3. hasOwnProperty()判断对象是否有某个特定的属性,(注意说的是对象的属性,而不是对象原型的属性)必须用字符串指定该属性。4. propertyIsEnumerable():原创 2022-07-07 19:09:57 · 85 阅读 · 0 评论 -
扩展知识——JS的劫持技术
1、黑客劫持网络数据包 然后暴力解码(逆向工程)个人隐私数据被窃取这里不作说明,感兴趣的自己了解2、系统的内置功能的重写3、this关键字的引用劫持1、call()方法,相当于偷取别人的方法例如:<script> var obj={name: "karen" ,say:function( ){console.log(this.name)}} var obj2={name : "jack"} obj.say.call(obj2)//相当于是ob原创 2022-07-07 18:02:50 · 657 阅读 · 0 评论 -
JS的时间对象
new Date()创建一个时间点对象 代表当时的本地时间创建时间对象,()内的参数可以是毫秒 也可以是字符串对象具体说明:对象的方法:1、getDate()返回多少号2、getDay()返回周几3、getFullyear()返回4位数的年份4、getYear() 返回3位 后两位代表年份5、getMonth()返回月份(0-11)6、getHours()返回小时7、getMinutes()返回分钟8、getSeconds()返回秒9、getMillise原创 2022-06-13 23:26:26 · 321 阅读 · 0 评论 -
JS中Math对象
Math对象有许多属性1、PIMath.PI 返回圆周率2、abs(x)Math.abs(x)返回数的绝对值3、acos(x)Math.acos(x) 返回数的反余弦值4、asin(x)Math.asin(x)返回数的反正弦值5、atan(x)Math.atan(x)返回数的反正 弦值6、cos(x)Math.cos(x)返回角的余弦值sin(x)Math.sin(x)返回角的正弦值tan(x)Math.tan(x)返回角的正切exp(原创 2022-06-13 18:24:44 · 193 阅读 · 0 评论 -
遍历器总结
遍历器:取出数据容器中的每一个元素的工具1、for 是最重要的遍历器 兼容性好2、for in 特点:它可以遍历对象(注意:不会遍历到原型)es5的技术3、forEach()函数4、map()函数 与forEach()函数相似,但是它有返回值5、filterfor of es6的技术...原创 2022-05-24 17:09:56 · 85 阅读 · 0 评论 -
JS数组的内置功能
1、concat()把多个元素(基本数据和引用数据都行)合并,并返回一个新数组。代码展示2、join("连接符")将数组中的每个元素拼接起来返回String类型,如果不写连接符默认为逗号(,)代码展示:3、pop()删除数组的最后一个元素,并返回这个元素4、push()往数组的末尾添加一个元素,返回这个数组的长度5、shift()删除数组的第一个元素,并返回这个元素6、unshift()往数组的头部添加一个元素,返回这个数组的长度7、splice()是3 4 5 6四个方原创 2022-05-24 13:02:53 · 165 阅读 · 0 评论 -
JS字符串内置功能
一、加特效的,会给字符串加相应的标签:(了解)1、big() <big> </big>标签 ,用大号字体显示字符串2、anchor()a标签 创建锚点,3、link() a标签 加链接的4、bold() <b></b> 使用粗体显示字符串5、blink()加高亮的 显示闪动字符串6、footcolor 使用指定的颜色来显示字符串7、footsize 使用指定的尺寸来显示字符串8、italics 用斜体显示字符串9、smal.原创 2022-05-23 19:06:09 · 477 阅读 · 0 评论 -
JS作用域链
js对象有两种成员一种是上文成员(js语法可以直接访问的成员)一种是下文成员(底层语法访问的成员) [[scopes]]括起来的成员名 就是下文成员[[scopes]]这个"对象"内部保存的就是函数的作用域函数在定义/声明的时候 就有了[[scopes]] 里面保存了上层的AO对象函数调用时会生成AO对象 AO保存在scopes对象内部的函数调用时生成AO对象 会把AO对象放在scopes每次调用都会放在scopes顶部(理解为栈)代码演示: <script&原创 2022-05-21 18:16:55 · 159 阅读 · 0 评论 -
JS预编译
JS完成解释执行分为三个步骤:1.语法分析;2.预编译(全局预编译、函数预编译);3.执行语句。具体分析:1、语法分析分析代码是否正确 词法分析2、隐式操作 ==> 预编译:函数调用了以后 在运行代码之前2.1函数每次调用都会生成一个对象Activation Object,简称AO对象:执行期上下文对象2.2.给AO对象添加成员:函数内部的局部变量和形参变量名 作为AO对象的属性名 其中形参和局部变量一样的时候 不影响2.3.把传入的实参赋值给AO对象的属性2.4.局部原创 2022-05-20 01:54:15 · 164 阅读 · 0 评论 -
JS函数自调用
顾名思义即函数内部自己调用自己;举例:<script> function fn () { console.log(666) // console.log(fn)//打印全局函数fn fn() //调用fn函数 } fn()//调用fn函数 //没有终止条件,函数一直自调用,一直打印666,这样会造成无限循环,</script>我们在函数中加入判断条件,设置何时终止自调用:<script原创 2022-05-20 01:15:37 · 1696 阅读 · 0 评论 -
符号优先级
JS符号运算优先级原创 2022-05-19 00:30:31 · 113 阅读 · 0 评论 -
JS笔试题
1、考察实参argument、函数运行时的作用域<script> function sum() { if (arguments.length == 2) { return arguments[0] + arguments[1]; } else if (arguments.length == 1) { var first = arguments[0];//2 return function(second) { retu原创 2022-05-19 00:28:56 · 209 阅读 · 0 评论 -
JS的回调函数
原创 2022-05-17 23:43:05 · 143 阅读 · 0 评论 -
JS变量相关之闭包
闭包封闭 闭合的包(代码块)具有作用域的代码块就是闭包以下都不是闭包 虽然是代码块 但是没有作用域<script> label: {}; { var a = 10; } if(){} for(){}</script>闭包有哪些好处?闭包1:函数内部的变量外部是无法访问的,闭包2:利用了函数每次调用时生成的独立调用栈介绍闭包闭包1:一个函数返回函数内部的工具函数,外部通过工具函数间接访问函数局部变原创 2022-05-16 00:43:42 · 873 阅读 · 0 评论 -
JS的作用域相关知识(进阶——涉及标识符提升问题)
作用域:标识符(变量和函数名)在那些地方能够被访问 哪些地方就是这个标识符的作用域,对于函数来说,这些地方就是指的 函数的代码块内部和代码块外部(标识符:var fn,fn就是标识符)规则1:函数内部的代码可以访问函数内部的标识符,也可以访问函数外部的标识符规则2:函数外部可以访问函数外部的标识符,但是不能访问函数内部的标识符通常函数内部的标识符为局部标识符案例:......原创 2022-05-14 17:43:00 · 117 阅读 · 0 评论 -
JS中对象属性的存取和原型对象的操作
对象存值:obj.a = 1,obj对象的原型.链上无论有无a成员,都会在obj对象中操作a成员(已经有a成员则改它的值,如果没有则先添加a属性再赋值)对象取值:var re = obj.x,取出obj对象中x属性的值,如果对象中无x属性,到原型链上取值,都没有返回undefined。实例:<script> function fn () { this.a = 1 } fn.prototype.x=20 var f1=ne原创 2022-05-14 00:30:09 · 473 阅读 · 0 评论 -
JS的原型链练习
案例一:<script> function Kedou() { this.life = 1 this.tail = 1 } var k1 = new Kedou()//{__proto__:{},life = 1,tail = 1} k1.age = 10 function Qingwa() { this.tui = 4 this.yanjing = 2 } Qingwa.prototype原创 2022-05-12 17:13:01 · 176 阅读 · 0 评论 -
JS的原型
原型的思想:内存共用所有的对象都有一个属性叫 __proto__ 代表的是这个对象的原型对象<script> function fn (firstName) { //构造函数 this.life=1 this.firstName=firstName this.sayName=function(){ console.log(this.firstName) } } var f1=new fn("张")//得到结果.原创 2022-05-11 23:44:04 · 86 阅读 · 0 评论 -
JS中函数的形参与实参
1、显式参数(形参)函数显式参数在函数定义时列出(即形参)。函数调用未传参时,参数会默认设置为: undefined。<script> function fn(a,b,c){//a,b,c为形参 //此时有一个隐式操作:var a,var b ,var c }</script>2、隐式参数(实参)函数内部有一个关键字 arguments,代表实际传入函数的参数列表。(实参数组)<script> functi原创 2022-05-10 00:01:15 · 567 阅读 · 0 评论 -
JS的this练习
this基本上就代表的是对象 在及其少的时候 this不是对象=>call apply bind1、<script> function fn(){ this.x=100 //等价于window.x=100 } fn() //等价于window.fn(),全局函数看作为window的方法 console.log(x)//等价于console.log(window.x=100) 打印100//易错点:容易把x看作函数内的变量,x的作用域在函数..原创 2022-05-09 23:19:17 · 192 阅读 · 0 评论 -
JS中this关键字
this代表的是 执行这个this代码的环境对象1、在脚本中,this代表的是window全局对象;在全局函数中,this代表的是window全局对象.2、全局变量会在脚本执行时 把变量名设置为全局对象window的属性;全局函数会在脚本执行时 把函数设置为全局对象window的方法<script> var a = 20 //等价于window.a = 20 function fn(){ console.log(this) //window原创 2022-05-07 18:12:50 · 113 阅读 · 0 评论 -
JS变量作用域(入门)
作用域:指一个变量它在哪些代码范围能够被使用,这些地方就是变量的作用域。在es5中,函数的代码块内部的代码可以访问函数代码块内的变量﹑也可以访问外部的变量(全局变量),取变量时,采取就近原则。函数外面的代码不能直接访问函数内部的变量例子:<script>var b = 10function fn(){ var a = 20 console.log(b)//10 ,函数内部可以获取外部的变量 } fn() consol.原创 2022-05-06 00:02:23 · 100 阅读 · 0 评论 -
JS的对象和函数
一、对象基础1、JavaScript中的对象是拥有属性和方法的数据2、在JavaScript中对象十分重要且普遍存在。3、对象也是一个变量 <script> var obj={ //对象的属性 name:"kiven", age:20, son:{ name:'pink', age:3原创 2022-05-05 22:50:34 · 602 阅读 · 0 评论 -
JS函数运用计算是否为闰年
判断是否为闰年闰年规则:1、公历年份是4的倍数,且不是100的倍数的,为闰年;2、公历年份必须是400的倍数才是闰年<script> function fn(year){ var a1=(year%4==0)&&(year%100!=0) //条件1 var a2=(year%400==0) //条件2 if(a1||a2){ return "闰原创 2022-05-05 20:49:41 · 965 阅读 · 0 评论 -
JS基础语句(break continue label)
一、break和continue语句都用于跳出循环,但是他们有不同点。break语句, 语句用于跳出循环。continue语句, 用于跳过循环中的一个迭代,继续执行下一个迭代。具体例子:<script> for(var i=0;i<3;i++){ if(i==1){ break; //直接结束for循环 }else{ console.log(i) //打印结果为0 } } for(var原创 2022-04-29 23:53:13 · 960 阅读 · 0 评论 -
JS基础语句(while do-while)
一、while语句循环语句,在判断条件为真时,反复执行{}内的语句。<script> // 结构: while(表达式1){ // 业务 } //当表达式1判断条件为真时,执行业务,再循环重复操作,直到表达式1不满足条件就跳出循环 //应当注意避免死循环,死循环会导致浏览器奔溃</script>与for语句相比:相同点:都是循环执行代码块({})内的语句不同点:for语句一个业务重复执行 但是是已知次数原创 2022-04-29 23:12:43 · 575 阅读 · 0 评论