js语言确实太灵活,出现的问题可能完全无法解释,弱类型语言也是另一种风骚.
下面就整理一下一些记录
原型链:
在JavaScript中,原型也是一个对象,通过原型可以实现对象的属性继承,
JavaScript的对象中都包含了一个”[[Prototype]]”内部属性,这个属性所对应的就是该对象的原型。
slice :中文意思 片, 一部分
切割数组,返回一个子数组
splice: 中文意思 剪接
改变原有数组的, splice(star ,end) 从star 到end ,把数组的值删除
split :划分
用法1 . split(‘’)把字符串变成数组
用法2。 Split(‘something’) 以字符串里面的something为分割,从新生成数组
闭包 :
调用函数内部变量,而且函数调用之后不会被销毁,风险是函数里面的方法不会被销毁,对性能有一定的影响
面对对象:封装 ,继承 ,多态
1、原生JS;
3、抓包工具:fiddler;
4、ES6;
5、移动端项目开发经验;
6、代码管理工具:git1、
2. 负责功能模块的代码编写、单元测试
1、问项目经验,负责哪个模块;
2、简历上的技术点;
3、浏览器跨域问题,目前做的项目会涉及到挺多跨域请求的;
4、原生JS;
5、vue在项目中是怎么用的,当初为什么要学习vue,与其他框架有什么区别
;6、抓包工具;
7、ES6:有些浏览器不能兼容ES6,怎么处理兼容性问题;babel转码
10、用什么工具管理代码;
11、最近学习了什么新技术或在关注哪些前沿技术。
xhmtl 和 html有什么区别
html是基本的web网页设计语言
xhtml是一个基于xml的置标语言
不同点
xhtml要被正确嵌套
xhtml要用小写
1.margin: 0 auto //水平居中
position:relative
top:50 // 明显偏下
transform:translateY('-50%') // 基于自身往上偏移一一半
2.
在父级元素写的属性--- 子元素会居中
display:flex
aligin-items:center //垂直居中 aligin垂直
justify-content:center //水平居中
=================js 改变 string 和改变object之间有什么区别
==============js 的继承实现
主要用两个实现
1.原型链继承
2.实例继承
一个用于继承的父函数
function fater(name){
this.name = name || 'fatyer'
this.gohome = function({
console.log(this.name+'gohome')
})
}
1.原型链继承方法 缺点无法向父级传参数
fater.prototype.gowork = function(){
console.log(this.name+'gowork')
}
2.实例继承
function child(name){
var instance = new Fater()
instance.name = name
return instance
}
var car = new Cat()
cat.name = name
cat.gohome()
==========原生控件 有没有写过
==========具体说说跟原生app交互的方法
==========字符串 15889853286 去重8
1.'15889853286'.split('8').join('')
2.for循环
for(var i =0 ;i<len;i++){
var new=''
if(val[i] !=='8'){
new+ = var[i]
}
return newstring
}
3.完全去重
for(var i =0 ; i<len ;i++){
var newarr =[]
if(newarr [i].indexOf(new)<0){
(arr.splice(0,i)
newarr.push(arr[i])
})
return newarr
}
==========数组去重复
===========http 302 304 101 表示什么
302重定向 服务器要求再发送一个请求, 服务器返回一个location指向新请求的url地址
304缓存页面 ,通过对比修改时间 发送304响应 , 如果时间相同就显示浏览器自己的缓存页面,如果修改就返回200
==========================Session cookie的区别 session关闭了浏览器就不会有了
1.session 存在服务器 cookie存在客户浏览器
2.session能存比较大 cookie 比较小只能存4K最多保存20个cookie
3.安全信息存在session cookie可以模拟不是很安全
====================
XML sql注入
input 怎么预防 script 标签转化成其他的输入符
1.把script之类的标签要替换掉
2.一些类似 尖角的标签替换掉< > 或者用其他转码什么的
===============
Objective .propty.tostring.call(a)判断类型
判断类型有多少种方法
1.typeOf [] = object typeOf object = object typeOf null = object
2.instanceOf() 判断他一个原型链上面的属性 是不是继承
3.Object.propty.toString.call()
============
vue next()的用法 跳登录页面
beforeRouteLeave (to, from, next) {
console.log('离开路路由')
if(to.fullPath==='/home'){
next();
}else{
next('/home')
}
=============函数怎么设置默认值
function(a=1,b=2,c=3)
==============组件异步
,,,
路由组件异步
要用的时候才装入需要的组件,有效提高首次装入页面的速度,路由切换的时候也可以用到
const Singer = (resolve) => {
import('components/singer/singer').then((module) => {
resolve(module)
})
}
===================vue v-model 在组件中怎么使用
=======================vue $.on的用法
==============vue
Watch. 和computed的用法有什么不同
Computed 对数据有依赖关系,优先读取缓存
computed 对数据有依赖关系
watch没有依赖关系 数据变化是异步的操作
==========
Let
, Const. 有没有变量提前声明
let 定义一个变量 是块级作用域 已经是当前作用域的全局了
const 定义一个常量 也是块级作用域
==========... 的用法
es6 扩展运算符
es6 扩展运算符 是一个扩展应用符
1输出单个数字....[1,2,3] 输出 1 2 3
2.在函数中使用
var arr1 = [x,y,z]
function(...arr1) 等同于 function(x,y,z)
3.可以拼接数组
var arr1 = [x,y,z]
var arr2 = [1,2]
[arrr,...arr2]
4.取数组的最大值
var arr1 = [1,2,3,4]
Math.max(..arr1) // 输出4
======== 组件使用 ref 指向的是一个实例 只当前标签使用ref的是dom
=======================
this.$nextTick( 的用法
文档刷新的时候执行, 一般放在vue声明周期的mounted里面,确保文档DOM已经被渲染
深复制和浅复制的区别
=======================深复制 浅复制
浅复制数据不能被shopcart的数据监听,属于引用状态 深复制是什么引用状态
==================vue extend 用法
使用基础 Vue 构造器,创建一个“子类” 创建一个子组件
和 vue comment 有什么不同 compunt是注册全局组件. Vue component 将extend扩展实例注册一个组件
=======================New promise深入讲
1.new promise 的主要好处是可以链式操作,把执行的代码和错误显示分离
2. 在多个任务下,需要完成1任务之后,再完成2任务,方便很多 。
3.new promise .all([p1,p2]) , 当p1 p2 都执行完了之后 才执行这个函数
4. new promise.race([p1,p2]) 用法 , 当p1 p2 任意一个提前完成都执行这个函数 , 多个异步任务是为了容错
==============================
keep alive
在vue 里面 为了使返回的页面不从新加载, 就有keep alive. 缓存页面 不重新加载
vue2.0提供了一个keep-alive组件
用来缓存组件,避免多次加载相同的组件,
减少性能消耗 <keep-alive><router-view></router-view></keep-alive>
=================================
为什么只能用mutation改变vuex状态
vuex 是一个多个任务的管理器, 单一可控制的状态管理,有利于追踪这个状态的改变 ,代码更清楚更好管理
======================如何理解Vue组件中所说的is特性
==================
template的用法
========================怎么解决
Ui框架渲染卡顿问题
1.margin: 0 auto //水平居中
position:relative
top:50 // 明显偏下
transform:translateY('-50%') // 基于自身往上偏移一一半
2.
在父级元素写的属性--- 子元素会居中
display:flex
aligin-items:center //垂直居中 aligin垂直
justify-content:center //水平居中
=================js 改变 string 和改变object之间有什么区别
==============js 的继承实现
主要用两个实现
1.原型链继承
2.实例继承
一个用于继承的父函数
function fater(name){
this.name = name || 'fatyer'
this.gohome = function({
console.log(this.name+'gohome')
})
}
1.原型链继承方法 缺点无法向父级传参数
fater.prototype.gowork = function(){
console.log(this.name+'gowork')
}
2.实例继承
function child(name){
var instance = new Fater()
instance.name = name
return instance
}
var car = new Cat()
cat.name = name
cat.gohome()
==========原生控件 有没有写过
==========具体说说跟原生app交互的方法
==========字符串 15889853286 去重8
1.'15889853286'.split('8').join('')
2.for循环
for(var i =0 ;i<len;i++){
var new=''
if(val[i] !=='8'){
new+ = var[i]
}
return newstring
}
3.完全去重
for(var i =0 ; i<len ;i++){
var newarr =[]
if(newarr [i].indexOf(new)<0){
(arr.splice(0,i)
newarr.push(arr[i])
})
return newarr
}
==========数组去重复
===========http 302 304 101 表示什么
302重定向 服务器要求再发送一个请求, 服务器返回一个location指向新请求的url地址
304缓存页面 ,通过对比修改时间 发送304响应 , 如果时间相同就显示浏览器自己的缓存页面,如果修改就返回200
==========================Session cookie的区别 session关闭了浏览器就不会有了
1.session 存在服务器 cookie存在客户浏览器
2.session能存比较大 cookie 比较小只能存4K最多保存20个cookie
3.安全信息存在session cookie可以模拟不是很安全
====================
XML sql注入
input 怎么预防 script 标签转化成其他的输入符
1.把script之类的标签要替换掉
2.一些类似 尖角的标签替换掉< > 或者用其他转码什么的
===============
Objective .propty.tostring.call(a)判断类型
判断类型有多少种方法
1.typeOf [] = object typeOf object = object typeOf null = object
2.instanceOf() 判断他一个原型链上面的属性 是不是继承
3.Object.propty.toString.call()
============
vue next()的用法 跳登录页面
=============函数怎么设置默认值
结尾: 由于整理得不是很好 而且是由自己的话语组织语言.所以不确保完全正确仅供参考.