教育改变生活
标题: 字节前端面试题 [打印本页]
作者: chinasll 时间: 2022-12-27 11:10
标题: 字节前端面试题
· 1、说说2种盒模型的区别?
o 标准盒模型与怪异盒模型的表现效果的区别之处:
§ 1、标准盒模型中width指的是内容区域content的宽度,height指的是内容区域content的高度,标准盒模型下盒子的大小 = content + border + padding + margin
§ 2、怪异盒模型中的width指的是内容、边框、内边距总的宽度(content + border + padding),height指的是内容、边框、内边距总的高度,怪异盒模型下盒子的大小 = width(content + border + padding) + margin
§ 3、注意:除此之外,我们还可以通过属性box-sizing来设置盒子模型的解析模式,可以为box-sizing赋两个值:
§ content-box:默认值,border和padding不算到width范围内,可以理解为是 W3c的标准模型(default)。总宽=width+padding+border+margin
§ border-box:border和padding划归到width范围内,可以理解为是IE的怪异盒模型,总宽=width+margin
· 2、js数据类型?
o 数据类型:
§ 基本数据类型:Number、String、Boolean、null、undefined
§ 引用数据类型:Function、Object、Array
o 区别:
§ undefined:表示变量声明但未初始化时的值
§ null:表示准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null值表示一个 空对象指针
§ JavaScript(ECMAScript标准)里共有5种基本类型:undefined, null, Boolean, Number, String,和一种复杂类型Object。可以看到null和undefined分属不同的类型,未初始化 定义的值用typeof检测出来是"undefined"(字符串),而null值用typeof检测出来是 "object"(字符串)。任何时候都不建议显式的设置一个变量为undefined,但是如果保 存对象的变量还没有真正保存对象,应该设置成null。实际上,undefined值是派生自null 值的,ECMAScript标准规定对二者进行相等性测试要返回true
· 3、写出3个及以上的数组方法?
o join():将一个数组转成字符串,返回一个字符串。
o reverse():将数组中各元素颠倒顺序
o delete():运算符 只能删除数组元素的值,而所占空间还在,总长度没变(arr.length)。
o shift():删除数组中第一个元素,返回删除的那个值,并将长度减 1。
o pop():删除数组中最后一个元素,返回删除的那个值,并将长度减 1。
o unshift():往数组前面添加一个或多个数组元素,长度要改变。arrObj.unshift("a", "b", "c")
o push():往数组结尾添加一个或多个数组元素,长度要改变。arrObj.push("a", "b", "c")
o concat():连接数组
o slice():返回数组的一部分
o sort():对数组元素进行排序
o splice():插入、删除或替换数组的元素
· 4、解释下http响应码200,301,304,502的含义?
o 200( OK):请求已成功,请求所希望的响应头或数据体将随此响应返回。
o 301 => 永久重定向/永久转移
o 304 => 本次获取的内容是读取缓存中的数据,会每次去服务器校验
o 502 => 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求
· 5、vue组件间通信方法?
o 父组件向子组件传递数据
§ 父组件内设置要传的数据,在父组件中引用的子组件上绑定一个自定义属性并把数据绑定在自定义属性上,在子组件添加参数props接收即可
o 子组件向父组件传递数据
§ 子组件通过Vue实例方法$emit进行触发并且可以携带参数,父组件监听使用@(v-on)进行监听,然后进行方法处理
o 非父子组件之间传递数据
§ 1、引入第三方new Vue定义为eventBus
§ 2、在组件中created中订阅方法eventBus.$on("自定义事件名",methods中的方法名)
§ 3、在另一个兄弟组件中的methods中写函数,在函数中发布eventBus订阅的方法eventBus.$emit("自定义事件名")
§ 4、在组件的template中绑定事件(比如click)
· 6、如何区分数组和对象,至少2种?
o 方法一:通过ES6中的Array.isArray来识别
§ Array.isArray([]) //true
§ Array.isArray({}) //false
o 方法二:通过instanceof来识别
§ [] instanceof Array //true
§ {} instanceof Array //false
o 方法三:通过调用constructor来识别
§ {}.constructor //返回object
§ [].constructor //返回Array
o 方法四:通过Object.prototype.toString.call方法来识别
§ Object.prototype.toString.call([]) //["object Array"]
§ Object.prototype.toString.call({}) //["object Object"]
欢迎光临 教育改变生活 (http://bbs.goldoar.com/) |
Powered by Discuz! X3.2 |