最近在找工作面试,总结遇到的面试题
部分先记录,后续再答。
1. CSS的优先级?
CSS 优先规则1: 最近的祖先样式比其他祖先样式优先级高。
CSS 优先规则2:"直接样式"比"祖先样式"优先级高。
CSS 优先规则3:优先级关系:内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器;
CSS 优先规则4:计算选择符中 ID 选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按 a、b、c 的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中 a、b、c 都相等,则按照"就近原则"来判断。
CSS 优先规则5:属性后插有 !important 的属性拥有最高优先级。若同时插有 !important,则再利用规则 3、4 判断优先级。
2. ES6中的箭头函数的特点?
不需要function关键字来创建函数
省略return关键字
继承当前上下文的 this 关键字
3. vue 组件通信
1.父组件与子组件传值
父组件传给子组件:子组件通过props方法接受数据;
子组件传给父组件:$emit方法传递参数
2.非父子组件间的数据传递,兄弟组件传值
eventBus,就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件。也可使用vuex
4. "123456789876543212345678987654321…"的第n位是什么?
5. JavaScript之如何让数字千位分割,即每三位一个逗号间隔(7,896,235)?
JavaScript千位分割,复杂算法
console.log(parseInt('6451000.3213').toLocaleString());//千位分隔符 "6,451,000"
6. JavaScript随机生成11位的电话号码。
var number = '139'
console.log(number + Math.random().toString().slice(-6));
相关知识点:
Math.random方法 用于生成0~1之间的随机数
toString方法 用于将生成的随机数转换成字符串
slice方法 用于截取转换后的字符串,传入参数为负数时代表从字符串尾部开始朝头部方向截取
参考:随机生成10个手机号
7. 用原生js和jQuery在以下代码第一个li前面添加<li>java</li>
;
<ul class='ulTag'>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
// JS写法:
<script>
var liAll = document.getElementsByTagName('li');// 获取所有的li
var liTag = document.createElement('li')//创建一个li元素
liTag.innerHTML = 'ABC';//添加文本内容
document.getElementById('ulTag').insertBefore(liTag,liAll[0]);//在所有li下标0添加新的li
</script>
// JQ写法:
$("#ulTag2 li").eq(0).before("<li>ABC</li>");
8. js实现每个单词的首字母大写。
var str = 'jack marry tom!!';
var arr = str.split(' ');//切割字符串
for(var i = 0;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].slice(1);//将首字母大写 拼接后面没有首字母的部分
}
console.log(arr.join(' '));//将数组转为字符串 Jack Marry Tom!!