JavaScript容易忽略的细节

本文深入讲解了JavaScript中的null与undefined的区别、typeof运算符的使用、变量声明方式及注意事项、JavaScript的命名规范,以及如何通过原型prototype实现面向对象编程。

1.null和undefined 

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

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

undefined类型是null派生出来的所以,它们相等

alert(undefined==null)//输出true

2.typeof

未声明的对像只能用typeof运算符判断,并且typeof返回值为字符串所以,在进行类型比较时应为

var vItem; 

if(typeof vItem=="undefined")

而 

if(typeof vItem==undefined)永远为false

对于null而言,alert(typeof null);//输出object 。这其实是JavaScript最初实现的一个错误,但因为ECMAScript的沿用,成为了现在的标准。所以需要将null类型理解为“对象的占位符”

3.变量声明 

js是若类型语言,即使变量类型在初始化时已经被确认,仍然可以在之后改变

var vItem=1;

alert(typeof item); //输出number

vItem="1"; 

alert(typeof item) ;//输出string

js的变量声明可以为var iItem=1;也可以在隐式声明 iItem=1;但需要注意的是,隐式声明的变量总被创建为全局变量,即使在函数中也是一样

function test(){

 iItem=1;

this.test(); 

alert(iItem); 

4.JavaScript命名规范

js命名推荐匈牙利命名法 比如 function fnMethod(){}

下面是匈牙利命名法的前缀列表:

类型

前缀

示例

Array

a

aNameList

Boolean

b

bVisible

Float

f

fMoney

Function

fn

fnMethod

Int

i

iAge

Object

o

oType

Regexp(正则表达式)

re

rePattern

string

s

sName

可变类型

v

vObj

5.使用原型prototype实现js面对对象

原型,表示对象的初十状态,JavaScript中的每个对象都有一个prototype 属性,但是只有function类型的prototype属性可以使用脚本直接操作

Object的prototype属于内部属性,无法直接操作。prototype属性本身就是一个objece类型,一个函数的prototype上所定义的属性和方法都会在

其实例对象上存在。所以说prototype就是C#中的实例方法和实例属性

function fnStaticClass(){}//声明一个类

fnStaticClass.statMethod=function (){alert("static method")}; //创建一个静态方法

fnStaticClass.prototype.instanceMethod=function(){alert("instacne method")};//创建一个实例方法

fnStaticClass.statMethod();//直接调用静态方法

var instance = new fnStaticClass();//实例化
instance.instanceMethod();//在实力上调用实例方法
 

 

转载于:https://www.cnblogs.com/zhangchao1/archive/2011/06/09/2076677.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值