前端面试题汇总(基础篇)

115 阅读2分钟

JS 的数据类型有几种? 有什么区别

  • Number、String、Boolean、Null、undefined、object、symbol、bigInt
  • 区别
    • 基本类型(单类型):除Object。 String、Number、boolean、null、undefined。
    • 引用类型:object。里面包含的 function、Array、Date。
    • ES6 中新增了一种 Symbol 这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。
    • 谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。

Vue中常用修饰符

v-model修饰符

  • .lazy - <input type="text" v-model.lazy="value">
    • 输入框改变,这个数据就会改变, .lazy 光标离开input框才会更新数据
  • .trim - <input type="text" v-model.trim="value">
    • 输入框过滤首尾的空格
  • .number - <input type="text" v-model.number="value">
    • 先输入数字就会限制输入只能是数字,先字符串就相当于没有加number,注意,不是输入框不能输入字符串,是这个数据是数字

事件修饰符

  • .stop - <button @click.stop="test"></button>

    • 阻止事件冒泡,相当于调用了event.stopPropagation()方法:
  • .prevent - <a @click.prevent="test"></a>

    • 阻止默认行为,相当于调用了event.preventDefault()方法,比如表单的提交、a标签的跳转就是默认事件:
  • .self - <div @click.self="test"></div>

    • 只有元素本身触发时才触发方法,就是只有点击元素本身才会触发。比如一个div里面有个按钮,div和按钮都有事件,我们点击按钮,div绑定的方法也会触发,如果div的click加上self,只有点击到div的时候才会触发,变相的算是阻止冒泡:
  • .once - <div @click.once="test"></div>

    • 事件只能用一次,无论点击几次,执行一次之后都不会再执行
  • .capture

    • 事件的完整机制是捕获-目标-冒泡,事件触发是目标往外冒泡
  • .sync

    • 对prop进行双向绑定
  • .keyCode

    • 监听按键的指令,具体可以查看vue的键码对应表