Number Object string null undifend function symbol
parentNode $("#test1").parent()
全局变量污染的问题解决了 内部函数调用外部函数的参数 页面解构的时候执行
promise.all 主要是等所有的接口都调完,再进行下一步操作
1、let关键字,用来代替 var的关键字,特点: 1、变量不允许被重复定义 2、不会进行变量声明提升 3、保留块级作用域中i的
2、const定义常量,特点:1、常量值不允许被改变 2、不会进行变量声明提升
3、var 可以声明提升 提升至作用区顶端 变量允许被重复定义
super es6继承属性
class Worker extends Person。es6继承方法
*//*继承属性 我们们使用构造函数去实现类的存在。
Person.call(this, name, sex);
*//*继承方法
Object.create(Person.prototype);
Forin for while for each https://blog.csdn.net/weixin_46419373/article/details/107007546
reduce some every filter map forEach
使用过
拖拽,轮播图
sui mui vant mint
1、JSONP跨域
2、cors Access-Control-Allow-Origin 是由后台去操作
3、反向代理/正向代理
https://www.cnblogs.com/gitnull/p/9817405.html
解决跨越请求。通过src属性来支持
window的软件,和github一样
函数和方法是一段代码,通过名方法字来进行调用,但跟一个对象相关联。方法和函数大致上是相同的,但有两个主要的不同之处:
方法中的数据是隐式传递的;方法可以操作类内部的数据(请记住,对象是类的实例化–类定义了一个数据类型,而对象是该数据类型的一个实例化)find indexOf
Object.assgin
不管在对象或者数组中嵌套多少层,如果只拷贝地址,不拷贝数据。叫做浅拷贝。
不管在对象或者数组中嵌套多少层,直接生成新数据拷贝数据。叫做深拷贝。
Object.assgin
Let变量声明 1 不允许变量名重复声明 2 没有声明提升 3只在声明所在的块级作用域内有效 4在声明前无法使用
Const常量声明。1 声明必须赋值。2 赋值不允许更改 3只在声明所在的块级作用域内有效。
Var 声明变量 1 允许重复声明 2 作用域提升 3 var定义的变量是全局变量或者函数变量 4声明之前回报undefeated
但是在ES6之前没有类 我们使用构造函数去实现类的存在。
继承属性。。通过call
继承方法通过 Object。created
有 class类
当前端请求服务器后台数据时候由于浏览器有安全沙箱 会进行跨越拦截 导致请求失败
同源策略: *1*、同协议 *2*、同域名*/*主机 *3*、同端口号Jsonp
后端代理
cors
2.1它只支持GET请求而不支持POST等其它类型的HTTP请求
2.2它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。
2.3 jsonp在调用失败的时候不会返回各种HTTP状态码
2.4缺点是安全性。万一假如提供jsonp的服务存在页面注入漏洞,即它返回的javascript的内容被人控制的。那么结果是什么?所有调用这个 jsonp的网站都会存在漏洞。于是无法把危险控制在一个域名下…所以在使 用jsonp的时候必须要保证使用的jsonp服务必须是安全可信的。
https://blog.csdn.net/wsymcxy/article/details/82913756
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mZ4K8aiH-1601726919346)(/Users/momo/Desktop/三阶段资料/原生js面试题/img/截屏2020-10-01 下午8.39.32.png)]
1 bind会产生新的函数
2call和apply传参不同
*function()中this是指向调用这个函数的对象
箭头函数中,本身没有this借用函数外部代码块的thisarguments,不能使用 由于this在箭头函数中已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略for of可以循环数组,但是不能循环json,因为它是为了与map配合使用
1- 每个数据,必须对应一个 key 2- 只能使用双引号 3-key 必须是双引号包裹 " "
JSON对象是 javascript 的原生对象,用来处理JSON格式数据,有两个方法:
JSON.parse(string):接受一个 JSON字符串 将期转化为 javascript 对象JSON.stringify(obj): 接受一个 javascript 对象 转化为一个 JSON字符串JSON 的标准写法: 只能用双引号 所有的key都必须用双引号包起来
Push unshift shift pop concat splice map filter join slice
展开运算符
Object.assign
不管在对象或者数组中嵌套多少层,如果只拷贝地址,不拷贝数据。叫做浅拷贝。
不管在对象或者数组中嵌套多少层,直接生成新数据拷贝数据。叫做深拷贝。
第一种(函数声明): 第二种(函数表达式):匿名函数:第三种(构造函数):
https://www.jb51.net/article/107012.htm
git是一种分布式的版本管理系统,Linux的创造者Linus写的。
GitHub是基于git的代码库托管站,也算是程序员的SMS(以码会友),其中一个主要的开源代码发布或托管站
1、let关键字,用来代替 var的关键字,特点: 1、变量不允许被重复定义 2、不会进行变量声明提升 3、保留块级作用域中i的
2、const定义常量,特点:1、常量值不允许被改变 2、不会进行变量声明提升
3、箭头函数
与普通函数的区别:1、书写上用=>代替了function
2、普通函数的this指向window 而ES6箭头函数里面的this指向定义时的那个对象 而不是运行时的那个对象
4、字符串模板``
5、ES6中字符串和数组新增了那些方法
字符串
1、字符串模板
2、includes
3、startswith
4、endsWith 等
数组
1、Array.of //将一组数值转化为数组
2、Array.from 等
将伪数组转为数组: var list = Array.from(document.getElementsByTagName("li”));、
6、第七种数据类型Symbol
7、ES6中set集合和Map集合
set:
set是ES6提供的一种新的数据结构,类似于数组,但是成员的值是唯一的没有重复的,接受的参数是一个数组方法有:
add():添加
delete():删除
size:长度
has():查找
clear:清除所有
map:
map类似于对象,也是键值对的集合, 但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键方法有:
set():设置
get():获取
delete():删除
has():查找
clear():清除所有
8、Promise规范
1、什么是promise?
异步操作的同步代码
2、promise的基本使用
通过new promise创建一个promise对象,里面有一个参数,参数是一个回调函数,回调函数中有2个参数,resolve,reject resolve()当
异步执行成功的时候调用的方法,reject()当异步失败的时候调用的方法。
除此之外promise有一个then方法,当成功的时候执行第一个回调函数,当失败的时候执行第二个回调函数。第二个回调函数也可以通过
promise对象.catch调用
3、Promise.all():当所有的异步代码都执行完毕以后才会执行.then中的操作
4、Promise.race():只要有一个promise执行完毕后就会执行.then操作
5、如何实现多个异步同步执行
var p1 = new Promise(function(resolve,reject){
setTimeout(function(){
console.log(‘1’);
resolve()
},3000)
})
function p2(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(“2”);
resolve();
},2000)
})
}
function p3(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(“3”);
resolve();
},1000)
})
}
function p4(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(“4”);
resolve();
},500)
})
}
p1.then(function(){
return p2()
})
.then(function(){
return p3();
})
.then(function(){
return p4();
})
9、类的支持
cancelBubble=true
stopPropagation()
一**.** 回调函数的作用
js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数。
二**.** 回调函数的解释
因为函数实际上是一种对象,它可以存储在变量中,通过参数传递给另一个函数,在函数内部创建,从函数中返回结果值”,因为函数是内置对象,我们可以将它作为参数传递给另一个函数,到函数中执行,甚至执行后将它返回,它一直被“专业的程序员”看作是一种难懂的技术。
永久储存和一次对话储存
localStorage
1、永久存储
2、最大5MB
存储用户登陆状态
//动态计算rem
document.documentElement.style.fontSize =
document.documentElement.clientWidth / 7.5 + “px”
window.onresize = function(){
document.documentElement.style.fontSize =
document.documentElement.clientWidth / 7.5 + “px”
}
在项目入口文件里面写啊
用过 mongodb是一个非关系型数据库 Node.js 就是运行在服务端的 JavaScript。非关系型数据库,又叫nosql
它是一个对象,用来传递异步操作的信息。
Pending:进行中,Resolved:已完成,Reject:已失败
优点:可以通过.then解决回调地狱的问题,通过try-catch解决问题捕获
1、JSON:是一种轻量级的数据交换格式。 2、JSONP:是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。