Yushi前端笔试题【一期】

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

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端开发黑子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值