JavaScript之二:基本语法

二,基本语法

1,注释

//单行注释
/*
 *多行注释
 */


2,语句

以分号结尾。


3,变量

var message = "hi";
javascript变量是松散型,可以赋予任何类型的数据。 若变量 未被赋值,则默认值为undefined。

注意:省略var定义的变量将成为全局变量。


4, 数据类型
分类:五种简单类型Undefined,Null,Boolean,Number,String,一种复杂类型Object。

类型检测:

基本类型用typeof,上述数据类型将依次返回undefined,object,boolean,number,string;object。当被检测为函数名时,则返回function

引用类型用instanceof。

内存布局:

基本类型会将数值直接保存在栈内存,占固定大小,连续位置,查询速度快。

引用类型在栈内存中只保存一个指针,指针会指向堆内存,对象的属性和方法都以类似Map的格式保存在堆内存中。因此引用类型是可以动态添加属性和方法的。


1> Undefined:

只有一个值就是undefined。

对未声明和未初始化的变量,typeof都会返回undefined,以此表明,该变量不可操作。

推荐,所有变量在声明时都初始化值,当typeof返回undefined时,就明确知道该变量是未声明而不是未初始化。


2> Null:

只有一个值就是null。

使用typeof检测null会返回object。

推荐,如果一个变量准备保存引用型数据,那么最好初始化为null。这样通过typeof检测就知道该变量是否是一个引用型变量了。

注意,由于undefined派生自null,null == undefined返回true,但 null === undefined返回false。


3> Boolean:

有两个值true/false。

其他所有类型转Boolean:Boolean()。规则如下:

String的任何非空字符串都是true,空字符串是false;

Number的任何非零数值是true,0和NaN是false;

Object的任何对象是true,null是false;

Undefined的n/a是true,undefined是false。

注意,在其他类型被当做if条件判断时,则会自动调用Boolean()函数将其先转换为Boolean类型,


4> Number:

表示整数或小数。

其他所有类型转Number:Number()。

字符串转Number:parseInt(),parseFloat()。parseInt()可通过第二个参数指定数字的进制。

NaN:当计算出错(如整数除0)时不会报错,会返回NaN,好处是错误并不中止后续脚本运行。但由于对NaN的计算都会返回NaN,因此一但有一步返回了NaN,最终结果就会为NaN。

isNaN:判断NaN不能通过 == 操作符,因为NaN不等于任何值,包括它本身。JavaScript提供了isNaN()函数来判断。所有数据类型都可以被isNaN判断,因为在判断之前会调用Number()函数,先将其转换为数值再判断。

Infinity:如果计算结果超过了Number.MIN_VALUE或Number.MAX_VALUE,则返回-Infinity或Infinity。转换后不能继续后续计算,应对有可能超出范围的结果先用isFinite()函数检测后再计算。


5> String:

一组16位Unicode编码的字符的序列。

其他所有类型转String:String()。

除了null和undefined的所有类型转String:toString()。数值类型可添加参数作为进制。


6> Object:一组数据和功能的集合。是所有引用类型的父类。

属性:

contructor:构造函数。当对象是被new调用函数构造出来时,会被自动赋予该属性,指向构造函数,表明了类型。

方法:

toString()返回对象字符串表示。

valueOf()返回对象的字符串、数值或布尔值表示。

hasOwnProperty(propertyName)用于检测对象实例是否有该属性。

isPrototypeOf(object)用于检测自身是否是object的原型。

propertyIsEnumerable(propertyName)用于检测该属性能否使用for-in遍历。


5, 操作符

6, 逻辑语句

for in语句:迭代对象属性。

with语句:用于将代码作用域设置到一个对象中。

7, 函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值