JS每日五道题

209 阅读2分钟

我个人不是一个脑袋很灵光的,每天除了工作之外的时间,努力去学习,一天下来能消化掉的东西也是十分有限的是我总相信,日积月累下努力一定会开花结果的

1、0.1 + 0.2 === 0.3,对吗?

我看到这个题想了一下,这首先是道判断题,我思考的答案是,不对 在二进制中,浮点数的存在会在运算过程中有误差,简单来说,就是浮点数精度丢失的问题

在运算过程中,建议先把浮点数转换成整数在进行运算; 不建议使用toFixed(),性能不好;

2、什么是匿名函数?

注意: 匿名函数的正确写法是最外层要包上一层括号,否则会报错

  1. 什么是匿名函数,顾名思义,匿名就是没有名字的函数; 示例:
(function(){
    var a = 1;
    console.log(a)
})
  1. 匿名函数的作用:
  • 模拟块级作用域,有效的防止变量污染
  • 实现闭包

3、绑定点击事件有几种方式?

//方法一:直接绑定
<div id="ById" onclick="click"></div> 

// 方法二
var clickBtnId = document.getElementById('ById');    //获取id
function a(){    //要调用的点击事件函数
    alert(1)
};
clickBtnId.onclick = a()

//方法三
document.getElementById('ById').onclick = function(){
    alert(2)
}

//方法四
document.getElementById('ById').addEventListener('click',funcc);
//或者:
document.getElementById('ById').addEventListener('click',function () {
  alert('hahah')
  })

4、addEventListener的第三个参数作用?

第三个参数,是控制事件的冒泡或捕获的, 为false时,是冒泡; 为true时,是捕获;

5、函数声明和函数表达式的区别?

javaScript Function声明有两种 第一种是函数声明:

function a(){}

第二种是函数表达式:

var a = function(){};

两者区别: 主要在于函数&变量提升的问题

1)函数声明可以提升函数

2)函数表达式因为有var 享受变量提升 3)函数声明(函数提升优先级) < 函数表达式(变量提升优先级)

示例:

a();
function a(){
    console.log(1);    //1
}
b();
var b = function(){
    console.log(2)
};
//报错: b is not a function