JS中许多有趣的地方都和函数脱不了联系 那么是什么让JS中的函数这么有趣呢? 我们一起来看看吧 Function类型 在JS中函数实际上就是对象,每个函数都是Function类型的实例,和JS的其他引用类型都拥有属性和方法 正是由于这个原因,函数名实际上就是一个指针,指向函数对象,并不会与函数绑定 函数的声明 创建一个函数一般来说有下面几种方法 // function关键字声明 function sayHello(){ alert("hello"); } // 函数表达式 var sa…
昨天介绍了,JS中函数的作用域 什么词法环境之类的,可能很多小伙伴不太明白. 在今天的内容开始之前,先做个简短的声明: 词法环境这一概念是在ES5中提出的,因为词法环境主要用于保存let.const声明的变量.函数 而在ES3中对变量相关的信息都保存在变量对象上: 从功能上来说变量对象可以看作是词法环境中的环境记录 两者从功能上来说区别不大,只是不同版本的ES有不同的说法 为了保持与前文的一致,这篇文章中我还是用环境记录来描述JS保存当前执行环境(上下文)中定义的变量和函数的对象 ES6之前JS…
什么是内置对象呢? js高级程序设计中给出的定义为:由ES规定不依赖于宿主环境的对象,这些对象在JS执行前就已经存在 前面我们介绍的引用类型都是内置对象 除了这些对象外ECMA还规定了两个单体内置对象:1.Global 2.Math Global对象 Global对象十分特别,从某种意义上来说他是一个背锅侠 因为凡是不属于任何对象的属性和方法最后都将成为Global对象的属性和方法 也就是说在JS中凡是全局变量和全局方法实际上都是Global对象的属性和方法(包括isFinite等方法也是) G…
JS中处理字符串最常用的应该就是正则了 同样正则(RegExp)类型也是JS中引用类型的一种 ECMAScript通过 RegExp类型 来支持正则表达式 创建正则 var expression = / pattern / flags; 在上面创建正则实例中 pattern 部分可以是任意简单或复杂的正则表达式,每个正则表达式可以有一个或多个 flags 来标明正则的行为 使用构造函数创建 var expression = new RegExp("pattern","flag…
基本包装类 基本包装类这个概念或许有的小伙伴没有听说过 但是小伙伴们有没有想过,为什么基本数据类型的实例也有方法呢? 其实这些方法都来自基本包装类型 这是JS为了方便操作基础数据类型而创建的特殊引用类型 基本包装类有三种 1. Boolean类型 2. Number类型 3. String类型 执行过程 这三种基本包装类型的生命周期很短,只存在于代码执行的一瞬间 当这三种基本数据类型调用其基本包装类的方法时: 1.读取以上三种类型的基本数据类型时 2.创建一个基本包装类的实例 3.调用该实例上的…
除了前两天介绍的Object.Array类型,Date应该就是JS中最常用的引用类型了 先介绍一下Date类型,该类型使用在Java的 java.until.Date 类的基础上构建的 使用UTC 1970年一月一日零时为基准的毫秒数来保存时间 Date的创建 var now = new Date(); 以上方式会自动获取当前的时间,如果需要指定的时间,那么则需要对 Date 构造函数传入参数(毫秒表示) 而为了简化计算过程,Date对象为我们提供以下方法 1.Date.parse() 该方法接…
除了Object类型之外ECMA中最常用的引用类型可能就是Array类型了 并且ECMA中的数组类型和其他大多数编程语言的数组类型存在着很大的区别 今天就介绍一下JS中的Array的特别之处 区别 1. JS中的数组类型可以存储任意类型的数据(其他语言中一般来说只能存储固定类型的数据) 2. 数组的大小是动态调整的,也就是说你数组中的元素的大小有多大,数组的大小就有多大 3.length属性可写,与一些面向对象的语言不同,JS数组的length属性可写,就是说我们可以通过length属性来移除数…
前面的文章中我们知道JS中的值分为两种类型 基础类型的值和引用类型的值 基础类型的值我已经大概介绍了一下,今天开始后面几天我会为大家介绍一下引用类型的值 Object类型 对象是引用类型的值的实例,在ECMA中引用类型是一种数据结构 用于将数据和功能组织到一起,在其它编程语言中通常也被称为类 但是与其他语言中的类不一致,JS中并没有在其他面向对象的编程语言中与类相关的接口 引用类型通常也被称为对象定义,因为其描述的是一类对象所具有的属性和方法 JS为我们提供了许多原始的引用类型 今天就介绍这些原…
前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西. 那么这一篇,我们可以正式进入JS的世界了,emmm 前面的东西应该比较基础,大佬们不喜勿喷. 首先学习一门语言,最开始不出意外的话应该是先了解这门语言由什么类型的数据组成,毕竟语言都是建立在这些数据类型的基础之上的. 在介绍数据类型之前,我先大概说一下 typeof 操作符,这是JS中判断一个变…
WebGL上下文 在支持WebGL的浏览器中,WebGL的名字为 "experimental-webgl",这是由于 webgl 的规范仍未制定完成 制定完成后名字就会改为简单的 "webgl" 如果浏览器不支持,那么在获取webgl上下文的时候浏览器会返回 null 所以在使用前需要检测返回值 基本的获取 WebGL 代码如下: let drawing = document.getElementById("drawing"); // 检测浏览器…