面试遇到的一些问题(未整理)

link跟@import有什么区别?
  • @import是css提供的语法规则,只有导入样式表的的作用;link是xhtml提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。
  • 加载页面时,link标签引入的 CSS 被同时加载;@import引入的 CSS 将在页面加载完毕后被加载。
  • 可以通过 JS 操作 DOM ,插入link标签来改变样式;由于 DOM 方法是基于文档的,无法使用@import的方式插入样式。
  • @import是 CSS2.1 才有的语法,故只可在 IE5+ 才能识别;link标签作为 HTML 元素,不存在兼容性问题。
  • link引入的样式权重大于@import引入的样式。(待测试)
html5删除了那些标签,新增了那些特性,怎么区分html跟html5
css优先级
  • !important(1/0无穷大)> 行内样式(1000) > ID(100) > 类、伪类、属性(10) > 标签名(1) > 继承 > 通配符(0)
闭包的三个特性
  • 函数嵌套函数
  • 函数内部可以引用外部的参数和变量
  • 参数和变量不会被垃圾回收机制回收
css3有那些新特性
ajax的缺点和在IE下的问题
快速排序的内部逻辑,以及实现
AMD跟common.js有什么区别,优缺点
写一个函数返回一个字符串的字节数(假设一个英文字符是一个字节,一个中文字符是两个字节)
css3有那些选择符,css3新增了那些伪类,伪类跟伪元素有什么区别
自己写一个函数实现bind的功能
Function.prototype.bind = function (_this,args) {
    var self = this,
          oldargs= arguments;
    
    return function () {
        var args = [];
        for(var i = 1; i < oldargs.length; i++){
            args.push(oldargs[i])
        }
        for(var i = 0; i < arguments.length; i++){
            args.push(arguments[i])
        }
        return self.apply(_this, args)
    }
}
设置cooke
模拟split方法
vue的父子组件通信、vuex(状态管理)、vue路由----vue的同级子组件之间的通信
jquery的$.extend()、$.fn和$.fn.extend()---(插件系统)
webpack打包多个html文件,
js异步回调在es6里面的解决办法
正则问题( 12345 变成 1 2 3 4 5)(手机号)
es6的promise对象
es6的异步变成解决方法 Generator 函数
es7中的异步方法( ES2017 标准引入了 async 函数,使得异步操作变得更加方便。)
js继承 .call()、 .apply()
  • eq:Math.max() 用js继承写一个函数实现这个方法
    function maxs(){
    return Math.max.apply(null,arguments)
    }
Parcel 打包工具,
html5的新标签和新的api
css3的新特性
前端算法问题
js的几个类型:
  • 字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(undefined)
js判断数据类型的方法--typeof(不能判断对象)、

你可能感兴趣的:(面试遇到的一些问题(未整理))