Yushi前端笔试题【一期】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fifteen718/article/details/83576639

1、描述以下6种错误类型

Syntaxerror

语法错误。

常见:1、变量名不符合规范;2、给关键字赋值。


ReferenceError

引用错误,要用的变量没找到。

常见:1、引用了不存在的变量;2、给一个无法被赋值的对象赋值。


TypeError

类型错误。

常见:1、调用不存在的方法;2、new关键字后接基本类型。


RangeError

范围错误,参数超范围。

常见:1、数组长度为负数;2、Number对象的方法参数超出范围。


EvalError

非法调用 eval( ) 。

在ES5以下的JavaScript中,当eval()函数没有被正确执行时,会抛出evalError错误。


URIError

URI不合法。

URI相关参数不正确时抛出的错误,主要涉及encodeURI、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()六个函数。

2、两种export 方式

export default const a = 1

const a = 1

export default a

为什么前者这样无效,而后者却可以?

请给出正确的导出方法及其对应的导入方法。

原因:

export default命令的本质是将后面的值,赋给default变量,所以可以直接将一个值写在export default之后,而不能跟变量声明语句。

正确写法一:

export var a = 1

// 对应导入写法:

import { a } from xxx

正确写法二:

var a = 1

export default a

// 对应导入写法:

import a from xxx

3、补全下方css代码实现水平垂直居中

.center {

            width: 400px;

            height: 400px;

            background: #0f0;

            /* todo... */

           position: absolute;

           top: 50%;

           left: 50%;

           margin-top: -200px;

           margin-left: -200px;

}       

4、手写indexOf

 myIndexOf('hello yushi','world')

// 输出: -1

myIndexOf('hello yushi','yushi')

// 输出: 6

function myIndexOf(str, val) {

        // todo...

        var strLen = str.length, valLen = val.length

        for (var i = 0; i < strLen; i++) {

            var matchLen = i + valLen

            var matchStr = str.slice(i, matchLen)

            if (matchLen > strLen) {

                return -1

            }

            if (matchStr === val) {

                return i

            }

        }

        return -1

    }

猜你喜欢

转载自blog.csdn.net/fifteen718/article/details/83576639