web前端面试笔试题记录

 RorinL     2022年02月19日 星期六 10:53:03     JavaScript   面试      JavaScript   js   前端面试   面试    

1.css选择器的优先级

ID选择器>类选择器>标签( 类型 )选择器>子选择器>后代选择器>伪类

!important优先级最高,同一个样式属性,将会采取就近原则,后者覆盖前者;

2.target属性

_self:在当前窗口载入目标文档

_blank:总是打开一个新窗口载入目标文档

_parent:一般情况下(没有 parent 框架或者浏览上下文)行为和_self相同

_top:一般情况下(没有 parent 框架或者浏览上下文)行为和_self相同

3.window对象的子对象

location,document,screen,history,navigator

location:当前url的信息;hostname:域名,href:完整url

screen:屏幕信息,width:屏幕高度,height:屏幕宽度

history:浏览器url历史,back()前一个历史记录,forward()下一个历史记录

navigator:浏览器信息,appName:浏览器名,appVersion:浏览器平台&版本

4.switch case

switch case是全等运算,相当于”===”;不仅比较数据类型还比较值;

function showCase(value) {
    switch(value) {
    case 'A':
        console.log('Case A');
        break;
    case 'B':
        console.log('Case B');
        break;
    case undefined:
        console.log('undefined');
        break;
    default:
        console.log('Do not know!');
    }
}
showCase(new String('A'));

返回的是Do not know!,因为new String返回的值的类型是Object

var aa = new String("aa");
var bb = "bb";
console.log(aa,typeof aa,bb,typeof bb);
typeof new String('A');

//返回
String { "aa" } object bb string
"object"

5.setTimeout

for(var i = 0; i < 10; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}
//返回10个10

首先setTimeout是按顺序执行的,而且里面的函数是异步执行;那么进入循环后,sett一秒后才执行,但这1s时间里for早就已经执行完成(优先执行微任务);每一次循环,都有一个新的setT,但是setT里的函数是异步的

for(var i = 1; i <= 5; i++) {
    setTimeout(function timer() {
        console.log(i);
    }, i * 1000);
}
//每秒一次输出6

参考https://segmentfault.com/q/1010000005042378/

6.js数据类型

7种原始类型:undefined,null,String,Boolean,Number,BigInt,Symbol

Object类型:Set,Map,Array,Object等Object派生类型

typeof可以检测原始类型,但是检测Object或则Object派生类得到的都是”Object”,而检测Object或则Object派生类一般下使用instanceof


暂无评论

发表回复

您的电子邮箱地址不会被公开。

CAPTCHAis initialing...