前端笔试记录

真不是考试的料啊,一到考试就会犯懵,这篇博客记录一下考试的时候遇到的自己做不对的点.

  • 浮点数运算

    let y = 0.3 - 0.2   
    y === 0.1 //false
    

    原因很简单,因为JS在进行浮点数运算的时候会存在误差,所以0.3 - 0.2 不等于0.1(唉,考试的时候怎么就没想到啊,懵啊懵)
    在这里插入图片描述
    要解决浮点数运算,一个办法是使用toFixed(),截取部分,不过这样不够准确(有些时候需要精确数值),另一个办法是把它们乘成10的n次幂,进行运算后再出去10的n次幂,这样就比较准确了,不过浮点数转成转成整数后得小于安全值2^53。

  • eval()
    这个真是被自己坑了,自己当时看书看到书上说尽量不要用eval(),就没关注eval(),笔试后好好看了一下eval()
    首先,eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码
    明确一下eval()不能在严格模式下使用,不然会报错;
    然后,eval在函数中创建的变量是局部变量,就如在这里插入图片描述

    当然有办法让eval创造全局变量,就是使用window.eval()
    在这里插入图片描述

  • with()
    这个with()有延长作用域链的作用,自己之前做了笔记,贴出来

    在Javascript的作用域中(作用域,想想就是函数块,每个函数都会有个函数名,就算是匿名函数也有个空函数名),那么创建作用域的时候,本层的标识符就可以寄托在这个作用域下,而with语句块中作用域的‘变量对象’是只读的,不能存储标识符,只能存储在其上一层,这就是延长作用域链with中首先查找的是with里的参数,再查找with所在函数作用域的参数,再查找相关对象(…参数)的属性,如果没有,再查找全局变量的值

    记录到的就这么多啦,如果有错误,希望大家指出共同进步。同时希望自己能找到实习,fighting!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值