javascript
JS新贵
学无止境!
展开
-
File,Blob,Base64之间的转换
每天学习一点点——File,Blob,Base64在前端开发中,经常会有对文件的操作,会用到Flie,Blob,Base64等文件对象类型,通过查阅MDN弄清了他们之间的关系,和它们之间的转换方法,妈妈再也不用担心文件对象操作的问题了!File对象通常情况下, File对象是来自用户在一个 <input> 元素上选择文件后返回的 FileList 对象,也可以是来自由拖放操作生成的 DataTransfer 对象,或者来自 HTMLCanvasElement 上的 mozGetAsFil原创 2020-10-22 23:19:19 · 733 阅读 · 0 评论 -
《JavaScript高级程序设计》--读书笔记(01)
JavaScript简介JavaScript诞生诞生于1995年,当时的主要目的是处理以前由服务器端语言(如 Perl)负责的一些输入验证操作。今天的JavaScript已经成为一门功能全面的编程语言,能够处理复杂的计算和交互,拥有了闭包、匿名( lamda,拉姆达)函数,甚至元编程等特性。要想全面理解和掌握 JavaScript,关键在于弄清楚它的本质、历史和局限性。JavaScrip...原创 2019-08-14 23:33:32 · 204 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(12)
值数组在JavaScript中,数组可以容纳任何类型的值,可以是字符串、数字、对象,甚至是其他数组。var arr = [1,"2",[3]]数组声明后即可向其中加值,不用预设大小。使用delete运算符可以将单元从数组中删除,删除后,数组length不变。类数组将类数组转化为真正的数组,通过数组工具函数indexOf(…)、concat(…)、foEach(…)等来实现。字符串...原创 2019-01-29 10:48:12 · 416 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(11)
类型类型是值的内部特征,它定义了值的行为,以使其区别于其他值。JavaScript有七种内置类型:空值(null)未定义(undefined)布尔值(boolean)数字(number)字符串(string)对象(object)符号(symbol,ES6+)除了对象之外,其他统称为“基本类型”JavaScript的bug:typeof null === "objec...原创 2018-12-25 17:58:23 · 178 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(8)
this全面解析每个函数的this是在调用时被绑定的,完全取决于函数的调用位置。调用位置调用位置就是函数在代码中被调用的位置,而不是声明的位置。最重要的是分析调用栈。调用栈:为了到达当前执行位置所调用的所有函数(可将其想象成函数调用链)function baz() { // 当前调用栈是: baz // 因此,当前调用位置是全局作用域 console.log(...原创 2018-12-19 11:41:37 · 244 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(7)
关于this一个很特别的关键字,被自动定义在左右函数作用域中。为什么使用thisthis提供一种更优雅的方式来隐式“传递”一个对象的引用。因此可以将API设计的更加简洁且易复用。function callme(){ return this.name.toUpperCase();}function sayhi(){ var greeting = "Hello,I am...原创 2018-12-19 11:40:45 · 288 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(3)
函数作用域和块作用域3.1 函数中的作用域函数作用域的含义是指,属于这个函数的全部变量都可以在整个函数的范围内使用及复用,嵌套作用域中也可使用。function foo(a){ var b = 2; //.... function bar(){ //... } var c = 3}全局作用于中包含了标识符foo,foo(…)...原创 2018-12-12 10:36:18 · 272 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(2)
词法作用域将“作用域"定义为一套规则,用来管理引擎如何在当前作用于以及嵌套作用域中根据标识符名称进行变量查找。作用域有两种主要的工作模型,词法作用域和动态作用域。2.1 词法阶段词法作用域就是定义在词法阶段的作用域,是由你在写代码时将变量和块作用域写在哪决定的。function foo(a) {var b = a * 2;function bar(c) {console.log...原创 2018-12-11 10:41:08 · 141 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(6)
你不知道的JavaScript动态作用域词法作用域是一套关于引擎如何寻找变量以及会在何处找到变量的规则。词法作用域最重要的特征是它的定义过程发生在代码的书写阶段(假设你没有使用eval()或with)动态作用域并不关心函数和作用域是如何声明以及在何处声明的,只关心它们从何处调用。作用域链是基于调用栈的,而不是代码中的作用域嵌套。主要区别:词法作用域是在写代码或者说定义时确定的,而动态作...原创 2018-12-17 08:54:50 · 274 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(1)
《你不知道的javascript》(上)作用域和闭包1.1 编译原理JavaScript事实上是一门编译语言。与传统编译语言不同,它不是提前编译的,但是其编译步骤和传统编译语言相似。1.传统编译流程,代码执行之前经历三个步骤,统称“编译”。分词/词法分析一段字符组成的字符串被分解成词法单元。空格在具有其实际意义的语言中会被当做词法单元。解析/语法分析将词法单元数组转换成“...原创 2018-12-10 16:14:33 · 442 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(10)
原型[[ProtoType]]JavaScript中对象有一个特殊的[[Prototype]]内置属性,就是对其他对象的引用。for…in遍历对象时的原理和查找完整条[[Prototype]]链类似 ,任何可以通过原型链访问到的属性都会被枚举。使用in操作符检查属性在对象中是否存在时,同样也会查找整条原型链,无论属性是否可枚举。Object.prototype所有普通的[[Proto...原创 2018-12-20 11:11:01 · 207 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(9)
对象语法两种形式定义:声明形式和构造形式。//声明形式var myObj1 = { key: value //...}//构造形式var myObj2 = new Object();myObj2.key = value;类型对象是JavaScript的基础。JavaScript中一共有六种主要类型。string number boolean null...原创 2018-12-20 11:10:19 · 214 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(5)
作用域闭包当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行。function foo() { var a = 2; function bar() { console.log( a ); } return bar; }var baz = foo();baz(); // 2由于bar() 所声明的位...原创 2018-12-14 09:03:28 · 194 阅读 · 0 评论 -
《你不知道的javascript》--读书笔记(4)
提升JavaScript代码在执行时是由上到下一行一行执行的,这种说话不完全正确。包括变量和函数在内的所有声明都会在任何代码被执行之前首先被处理如下例:a = 2;var a;console.log(a);//2所以这里首先被执行的是'var a;'console.log(a)//undefindedvar a = 2;var a = 2;可以看做是var a,a...原创 2018-12-13 10:21:33 · 184 阅读 · 0 评论