摘要: 判断两个数组是否相等 ` ` 严格相等,会比较两个值的类型和值 `==` 抽象相等,比较时,会先进行类型转换,然后再比较值 然后我就更迷惑了,先类型转换,我擦,怎么转换,左边转换成右边类型还是右边转换成左边类型? 先看几个例子: console.log([10] == 10); //true con 阅读全文
posted @ 2020-01-14 17:24 零度从容 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 什么是正则表达式? 正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子. 一个正则表达式是在一个主体字符串中从左到右匹配字符串时的一种样式. "Regular expression"这个词比较拗口, 我们常使用缩写的术语"regex"或"regexp". 正则 阅读全文
posted @ 2020-01-14 16:43 零度从容 阅读(392) 评论(0) 推荐(0) 编辑
摘要: JavaScript 的 this 指向 一、问题的由来 学懂 JavaScript 语言,一个标志就是理解下面两种写法,可能有不一样的结果。 var obj = { foo: function () {} }; var foo = obj.foo; // 写法一 obj.foo() // 写法二 阅读全文
posted @ 2020-01-14 16:36 零度从容 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 前言 一、新的变量声明方式let和const 是什么: 新的变量声明方式,提供变量的块级作用域,同时通过一些限制来更防止我们犯错误。也就是说是更好的声明变量的方式 怎么用 var 的问题 可以重复声明,没有报错和警告 无法限制修改 没有块级作用域, { } let 和 const 不能重复声明 都是 阅读全文
posted @ 2020-01-14 16:21 零度从容 阅读(345) 评论(0) 推荐(0) 编辑
摘要: JS的垃圾回收机制与常见内存泄露的解决方法 前言 起因是因为想了解闭包的内存泄露机制,然后想起《js高级程序设计》中有关于垃圾回收机制的解析,之前没有很懂,过一年回头再看就懂了,写篇博客与大家分享一下。如果喜欢的话可以点波赞/关注,支持一下。 个人博客了解一下:obkoro1.com 内存的生命周期 阅读全文
posted @ 2020-01-14 15:15 零度从容 阅读(609) 评论(0) 推荐(0) 编辑
摘要: 前言 JavaScript是一门动态语言,所谓的动态语言可以暂时理解为在语言中的一切内容都是不确定的。比如一个变量,这一时刻是个整型,下一时刻可能会变成字符串了。虽然变量的数据类型是不确定的,但是各种运算符对数据类型是有要求的。如果运算符发现,运算子的类型与预期不符,就会自动转换类型。 本文主要介绍 阅读全文
posted @ 2020-01-14 15:05 零度从容 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 引子 本文介绍JavaScript运行机制,这一部分比较抽象,我们先从一道面试题入手: console.log(1); setTimeout(function(){ console.log(3); },0); console.log(2); 请问数字打印顺序是什么?题目的答案是依次输出1 2 3 再 阅读全文
posted @ 2020-01-14 15:04 零度从容 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 方式一: Object构造函数模式 套路: 先创建空Object对象, 再动态添加属性/方法 适用场景: 起始时不确定对象内部数据 问题: 语句太多 var p = new Object()//先创建空Object对象 p.name = 'Tom' p.age = 12 p.setName = fu 阅读全文
posted @ 2020-01-14 14:52 零度从容 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 我们可以先看看一个常遇到的一个小问题 let a = { age:1 } let b = a a.age = 2 console.log(b.age) //2 从上面的例子中我们看到了,如果给一个变量赋值一个对象,那么两者的值会是同一个引用,其中一方变化,另一方也会有相应的改变。通常我们开发中不希望 阅读全文
posted @ 2020-01-14 14:50 零度从容 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 前言 与大部分面向对象语言不同,ES6之前并没有引入类(class)的概念,JavaScript并非通过类而是直接通过构造函数来创建实例。在介绍原型和原型链之前,我们有必要先复习一下构造函数的知识。 一、构造函数 构造函数模式的目的就是为了创建一个自定义类,并且创建这个类的实例。构造函数模式中拥有了 阅读全文
posted @ 2020-01-14 14:49 零度从容 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 我们先来看一个例子: var n = 999; function f1() { console.log(n); } f1() // 999 上面代码中,函数f1可以读取全局变量n。但是,函数外部无法读取函数内部声明的变量。 function f1() { var n = 999; } console 阅读全文
posted @ 2020-01-14 14:48 零度从容 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 前言 事件的触发权很多时候都属于用户,有些情况下会产生问题: 向后台发送数据,用户频繁触发,对服务器造成压力 一些浏览器事件:window.onresize、window.mousemove等,触发的频率非常高,会造成浏览器性能问题 如果你碰到这些问题,那就需要用到函数节流和防抖了。 一、函数节流( 阅读全文
posted @ 2020-01-14 14:46 零度从容 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 基本步骤类似于 步骤1准备画布 准备画布 <canvas></canvas>标签就是画布 canvas画布有默认大小 默认350X150 设置canvas画布大小 通常canvas是一个标签,可以在style canvas{width:xxxpx; height:xxpx} 但是不建议这样写 不建议 阅读全文
posted @ 2020-01-14 14:42 零度从容 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 什么是执行上下文? 简而言之,执行上下文是评估和执行 JavaScript 代码的环境的抽象概念。每当 Javascript 代码在运行的时候,它都是在执行上下文中运行。 执行上下文的类型 JavaScript 中有三种执行上下文类型。 全局执行上下文 — 这是默认或者说基础的上下文,任何不在函数内 阅读全文
posted @ 2020-01-14 14:41 零度从容 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 一、mysql完整语句顺序 select [ALL|DISTINCT|DISTINCTROW|TOP] {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]} FROM tableexpression[,…][IN 阅读全文
posted @ 2020-01-14 14:39 零度从容 阅读(282) 评论(0) 推荐(0) 编辑
摘要: js 封装插件 //module.js (function(window) { let data = 'www.baidu.com' //操作数据的函数 function foo() { //用于暴露有函数 console.log(`foo() ${data}`) } function bar() 阅读全文
posted @ 2020-01-14 14:38 零度从容 阅读(344) 评论(0) 推荐(0) 编辑