二、JavaScript基础 学好jQuery要了解的

JavaScript与ECMAScript

ECMAScript 通过ECMA-262标准的脚本程序设计语言

ECMAScript标准下有 javascript jscript actionscript

JavaScript分为值类型和引用类型两大类,有时也称为原始值和引用值。值类型:存储在栈(stack)中,一个值类型的变量其实是一个内存地址,地址中存储的就是值本身。引用类型:存储在堆(heap)中,一个引用类型的变量的值是一个指针,指向存储对象的内存处。

 还可以将javascript对象分为 本地对象、内置对象、宿主对象。

实际使用中为了使javascript真正单纯,可以将javascript中的类型分为:undefined、null、number、string、boolean、function、Object引用类型。

function就是一种引用类型。另外javascript的值类型背后其实也是一个“引用类型”,就是所有的类型都是从Object中派生而来。比如Number是一个“值类型”,但是其实存在一个引用类型“Number”,可以使用如下方式声明:var oNumberObject = new Number(55);  我们一般都是这样声明 var iNumberObject = 55;

undefined:表示一个对象没i有被定义或者没有被初始化。

null:表示一个尚未存在的对象的占位符。

有意思的是undefined类型是从null派生来的。所以他们是相等的:alert(null == undefined);输出true。

var oTemp = null;

if(oTemp){};//false

if(undefined)();//false

上面的语句if的条件都是false。但如果注释掉var oTemp = null;就会error。

但是无论是否声明过oTemp对象,使用typeof运算符获取到的都是undefined并且不会报错。

alert(typeof oTemp1);//输出"undefined"

所以在程序中使用一个可能没有定义过的变量,并且没有使用typeof做判断,那么就会出现脚本错误。此变量是null或者没有初始化的undefined对象,可以通过if或者==来判断。

未声明的对象只能使用typeof运算符来判断。

typeof运算符返回的都是一个字符串。而程序员经常当作类型来使用。

下面是typeof运算符对各类型的返回结果。

undefined:undefined

null:object

string:string

number:number

boolean:Boolean

function:function

object:object

提醒,一个没有返回值的function实际上返回的是undefined.

显示声明变量var iNum,sName;

即使变量的类型在初始化时已经被确定,但仍然可以在之后把他设置为其他类型。

var sName = "ajax"; sName = 55;

隐式声明不使用var关键词,而直接为变量赋值。隐式声明的变量总是被创建为全局变量。

javascript命名方法:变量用匈牙利命名法,var sName; var iNum;函数用Camel命名法,testMethod();

全局变量是window对象的属性。作用域是当前window窗体。window.sName.

闭包:是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

简单表述闭包:闭包就是function实例以及执行function实例时来自环境的变量。

闭包在javascript中是隐式创建的。

原文地址:https://www.cnblogs.com/tomkillua/p/2609492.html