1.无块级作用域 javascript没有块级作用域,这会让其他程序员在理解js代码上很痛苦.在其他很多语言,比如C,大括号括起来的代码块都有自己的作用域 举个例子 if(true) { var name = "saber" }; console.log(name)//saber 上面的代码可以看到,if判断语句中定义的变量所在的环境是全局环境,因此在if判断外面也能访问到该变量 (1)声明变量 function add(num1,num2){ // var sum = num1+nu…
先理解两个概念:基本类型和引用类型的值 1.基本类型和引用类型的值 (1)定义: 基本类型:指简单的数据段,比如按值访问的js五种基本数据类型undefined.null.boolean.number.srtring 引用类型的值:指保存在内存中的对象,注意一点,js不允许直接操作对象的空间 (2)相似和区别:   相同:定义两种类型的方式都类似:创建一个变量并赋值   不同点1:对于引用数据的值,我们可以添加属性进去,但是基本类型不行,强行添加会报undefined 下面给个例子: var p…
首先说明一下:Js中的作用域不同于其他语言的作用域,要特别注意     JS中作用域的概念: 表示变量或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下文执行环境.Javascript的作用域只有两种:全局作用域和本地作用域,本地作用域是按照函数来区分的. 首先来看几道题目: 1. 复制代码 代码如下: if(true){ var aa= "bb"; } console.log(aa); //bb for(var i = 0; i < 100; i++){ //do…
1.变量遵循先声明再使用. console.log(b); b=123; 代码运行结果: Uncaught ReferenceError: b is not defined 2.方法内定义的局部变量外部不能访问. function my(){ var a='hi'; } my(); console.log(a); 代码运行结果: Uncaught ReferenceError: b is not defined 同样是b未定义的错误. 3.一个方法嵌套另一个方法:外面方法可以访问里面声明的变量:…
浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: function compareByProperty(propertyName){ returnfunction(obj1,obj2){ return obj1[propertyName] - obj2[propertyName]; } }   该例中,compareByProperty内部的匿名函数有权利访问c…
浅谈JavaScript中的null和undefined null null是JavaScript中的关键字,表示一个特殊值,常用来描述"空值". 对null进行typeof类型运算,返回的是"object",因此可以将null认为是一个特殊的对象值.用null可以表示数字,字符串和对象是"无值的". undefined undefined是预定义的全局变量,它的值就是undefined,它是变量的一种取值,表示变量没有初始化. 对undefin…
浅谈JavaScript中的正则表达式 1.什么是正则表达式(RegExp)? 官方定义: 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符. 个人理解:其实就是用来给字符串加一个限制,用来让字符串结果达到我们想要的结果,如电子邮箱的邮箱格式,年月日格式等 2.语法及构造函数: var reg=/表达式/[附加参数]---------例:var reg1=/全局/g; 附加参数: g:代表可以进行全局匹配 i:代表不区…
基本类型和引用类型 在JavaScript中有两种数据类型值.基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指的是可能由多个值构成的对象.在JavaScript中有5种基本数据类型,分别是:Undefined.Null.Boolean.Number.String(这个和其他编程语言不一样,需要注意).基本数据类型是按值进行访问的,一般都存储在栈中.而引用类型的值都保存在内存堆上面,在内存栈上保存一个对它的引用(这个和C#,Java等编程语言存储对象的方式类似).在JavaSc…
一门语言的内存存储方式是我们学习他必须要了解的,接下来让我浅谈一下自己对他的认识. 首先说,JavaScript中的变量包含两种两种类型: 1)值类型或基本类型:undefined.null.number.boolean.string,这些类型在内存中分别占有固定大小的空间,他们的值保存在栈(Stack)中,一般说他们是按值访问的. 2)引用类型:Object (1)原生引用类型,由ECMAScript标准定义:Array   String   Number   Data   Boolean等…
引言 闭包可以说是JavaScript中最有特色的一个地方,很好的理解闭包是更深层次的学习JavaScript的基础.这篇文章我们就来简单的谈下JavaScript下的闭包. 闭包是什么? 闭包是什么?通俗的解释是:有权访问另一个函数作用域中变量的函数.创建闭包的常见方式,就是在一个函数内部创建另一个函数(作为其子函数).下面我们还是以前面的一个例子来简单介绍下: //通过属性名称来对数组元素进行排序 function createComparisonFunction(propertyName)…