![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript笔记
♚ Painting
想要爱自己的人以及自己爱的人生活的更好,那么自己就要不断努力。
在你想要放弃的时候,想想是什么让你当初坚持走到了这里。——科比
展开
-
setTimeout传参问题
以前理解的setTimeout()方法只接收两个参数:要执行的代码和以毫秒表示的时间。setTimeout(function(){alert("Hello world!");},1000);今天才发现,原来这个方法还可以接收多个参数,如下例子:还可以在异步操作中取得对应的值for(var i = 0;i < 5; i++){setTimeout((num) => {console.log(num)},1000,i)}...原创 2021-01-05 14:11:12 · 119 阅读 · 0 评论 -
JavaScript事件委托
事件委托原理:不是给每一个子节点单独设置事件监听器,而是事件监听器设置在其父节点上,然后利用冒泡原理影响设置每一个子节点案例:点击当前li,背景颜色变为pink色<ul> <li>知否知否,点我应有弹框在手!</li> <li>知否知否,点我应有弹框在手!</li> <li>知否知否,点我应有弹框在手!</li> <li>知否知否,点我应有弹框在原创 2020-08-16 12:23:59 · 176 阅读 · 0 评论 -
JavaScript的this原理(来自阮一峰的网络日志)
一、问题的由来学懂 JavaScript 语言,一个标志就是理解下面两种写法var obj = { foo: function () {}};var foo = obj.foo;// 写法一obj.foo()// 写法二foo()上面代码中,虽然obj.foo和foo指向同一个函数,但是执行结果可能不一样。请看下面的例子。var obj = { foo: function () { console.log(this.bar) }, bar: 1};var foo转载 2020-08-16 09:41:09 · 96 阅读 · 0 评论 -
通过案例说明innerHTML和createElement()创建多个元素的效率问题
以下测试,都是在创建相同元素下进行比较的<div style="width:100px;height:2px;border:1px solid blue;"></div>1.采用innerHTML拼接元素function fn() { var d1 = +new Date(); var str = ''; for (var i = 0; i < 1000; i++) {原创 2020-08-05 10:46:11 · 1293 阅读 · 0 评论 -
如何处理非标椎的json字符串
首先,明确JSON和JS对象的关系JSON和JS对象的关系JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串然后了解JSON和JS对象如何互传JSON 和 JS 对象互转要实现从JSON字符串转换原创 2020-08-02 20:41:17 · 547 阅读 · 0 评论 -
深入浅出讲解Javascript闭包问题+经典面试题
目录什么是闭包闭包的作用闭包应用(含经典面试题)思考题什么是闭包闭包指有权访问另一个函数作用域中的变量的函数。 —Javascript高级程序设计在这句话中,要抓住重点:闭包就是函数简单理解就是:一个作用域可以访问另一个函数内部的局部变量被访问的这个局部变量所在的函数,就是闭包函数function fn() { var num = 10; function fun() { console.log(num);原创 2020-07-29 16:28:49 · 234 阅读 · 0 评论 -
JavaScript创建对象的三种方式,以及对象遍历
1、利用字面量创建对象<script> //1.利用对象字面量创建对象{} // var obj = {}; 创建了一个空的对象 var obj = { uname: '张三', age: 18, sex: '男', sayHi: function () { console.log('hi~')原创 2020-07-15 18:35:33 · 355 阅读 · 0 评论 -
JavaScript预解析,你懂了吗?
JS引擎(解释器):运行js分为两步:1、预解析2、代码运行预解析: JS引擎会把JS里面所有的var还有function提升到当前作用域的最前面代码运行: 按照代码书写顺序从上往下逐行执行预解析分为变量预解析(变量提升)和函数预解析(函数提升)(1)变量提升:就是把所有的变量声明提升到当前作用域的最前面,不提升赋值操作(2)函数提升:就是把所有的函数声明提升到当前作用域的最前面,不调用函数问题引入及执行过程: <script> // 1问原创 2020-07-15 17:07:06 · 153 阅读 · 0 评论 -
简单介绍arguments的使用
当我们不确定有多少个参数传递的时候,可以用arguments来获取在JS中,arguments实际上它是当前函数的一个内置对象只有函数才有arguments对象,而且每个函数都内置好了这个argumentsarguments对象中存储了传递的所有参数简单示例:<script> // 注意这个函数是没有形参的 function getArrMax() { // arguments=[1,2,3] var max = argument原创 2020-07-15 16:29:10 · 287 阅读 · 0 评论 -
JavaScript之转换为字符串数字型以及布尔型
转换为字符串方式说明toString()转成字符串String()强制转换转成字符串加号拼接字符串和字符串拼接的结果都是字符串代码示例:<script> // 1.把数字型转换为字符串型 变量.toString() var num = 10; var str = num.toString(); console.log(str); console.log(typeof原创 2020-07-15 10:18:18 · 268 阅读 · 0 评论 -
逻辑中断,你了解吗?听说这是个面试考点哦
短路运算(逻辑中断):当有多个表达式时,左边的表达式的值可以确定结果时,就不再继续运算右边的表达式的值逻辑与语法:表达式1&&表达式2如果表达式1的结果为真,则返回表达式2如果表达式1的结果为假,则返回表达式1逻辑或如果表达式1的结果为真,则返回表达式1如果表达式1的结果为假,则返回表达式2代码示例 列举了每个情况:<script> //1.用我们的布尔值参与的逻辑运算 true && false == false原创 2020-07-15 15:10:13 · 362 阅读 · 0 评论