100道前端面试题02

来源:互联网 发布:centos mini desktop 编辑:程序博客网 时间:2024/06/05 10:56

这次主要是翻译整理了一些国外网站的测试题。

01.下列表达式输出结果为?

var val= 'smtg';
console.log('Value is '+ (val ==='smtg') ? 'Something': 'Nothing');

选项1:Value is Something

选项2:Value is Nothing

选项3:other

:结果为3,因为+运算符比三元运算符有更高的优先级,结果三元运算覆盖了前面+运算后打印出来。其实打印结果为Something。

 

02.下列表达式输出结果为?

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创建了一个对象。不能和循环里面的字符串匹配。

 

03.下列表达式输出结果为?

function showCase2(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!');
    }
}
showCase2(String('A'));

答:这道结果就能和循环里面的第一个匹配,因为String(X)并不能创建一个对象,String(‘x’)===’x’。

 

04.下列表达式输出结果为?

(function(){
    var x= y = 1;
})();
console.log(y);
console.log(x);

答:会输出一个1和错误。在js里面如果没有写var是一种隐式声明的全局变量,即使写在函数里面,也能被其他部分所访问。这里面y是全局变量而x不是。

 

05.下列表达式输出结果为?

var a= /123/,
        b = /123/;
a == b
a
=== b

答:输出两个false,正则表达式无法比较。

 

06.下列表达式输出结果为?

'5' + 3
'5' - 3

答:会输出532。因为+js起到一个连接符的作用,但是-号不是,js内部会将字符串转换成整数,然后运算。

 

07.下列表达式输出结果为?

c=5;
function test3()
{
    window.c=3;
    alert(c);
    var c;
    alert(window.c)
}
test3();

答:undefined3。函数内部的变量优先。而函数内部c无值。

 

08.对象是怎么样创建的?

1.var obj={}就可以创建一个对象2.new Object()也可以创建一个对象.

 

09.DOM中有几种类型的节点

整个文档是一个文档节点(Document)
每个 HTML标签是一个元素节点(Element)
每一个 HTML属性是一个属性节点(Attribute)
包含在 HTML元素中的文本是文本节点(Text)

 

10.怎么样给一个对象动态添加属性或者方法

直接在对象上面用obj.属性="test",obj.方法名=function(){}定义一个方法

更多请关注公众号:FE学习笔记。

0 0
原创粉丝点击