JavaScript基础入门教程

Posted flyor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript基础入门教程相关的知识,希望对你有一定的参考价值。

说明

  前一篇博客介绍了js以及一些关于js基本类型的简单知识,本篇博客将详细介绍js的基础类型,捎带介绍对象类型,更详细的对象类型的说明将后续再讲。

 

js中类型的说明

  js中的类型分为基本类型和对象类型,其中基本类型包括:①数字、②字符串、③布尔值。此外还有两个原始值null和undefined。其中对象包括数组对象、函数对象和普通对象,普通对象是“命名值”的无序集合,而数组对象是带编号的值的有序集合。javascript核心还定义了三种有用的类:日期(Data)类、正则(RegExp)类、错误(Error)类。

 

数字

  和常见的其它编程语言不同,js不区分整数和浮点数,js中所有的数值均用浮点数值表示。

整型直接量

  在js中一个数字序列默认是十进制的整数,同时支持使用"0x"或"0X"开头的十六进制,值得注意的是虽然有些JavaScript解释器支持0开头的八进制表示形式,但是ECMAScript标准并不支持,所以尽量不要使用八进制表示形式,以免出现移植上的问题。

浮点型直接量

  浮点型直接量的表示形式为:[digits][.digits][(E|e)[(+|-)]digits],例如①3.14、②6.02e23、③.22e-23 //0.22x10-23

js中的算术运算

  js不仅支持常见的加(+)减(-)乘(*)除(/)和求余(%),还支持更复杂的运算,不过需要Math对象的支持:

js语句 作用
Math.pow(2,53) 求2的53次幂
Math.round(0.6) 四舍五入,结果为1.0
Math.max(x,y,z) 求最大值
Math.PI 返回圆周率π的值

  js的算术运算会出现上溢和下溢,这与其它语言稍有区别,上溢的结果为Infinity或-Infinity,下溢的结果为0或-0,一般0和-0没什么区别(0===-0结果为true),但有时候还是会有不同,比如1/0结果为Infinity,而1/-0结果为-Infinity。此外还有一个结果就是NaN(Not a Number),当出现结果不是数字或者无法将其转化为数字时用NaN表示,比如负数开方、零除以零、无穷大除以无穷大等操作。

  全局函数isNaN()和全局函数isFinity()可以用于判断数值的类型,当一个数是NaN时isNaN()函数返回true,当一个数不是NaN、Infinity或-Infinity时isFinity()返回true。

二进制浮点数的四舍五入错误

  看下面的代码:

1 var x = .3 - .2;
2 var y = .2 - .1;
3 x == y    //false
4 x == .1    //false
5 y == .1    //true

  造成这种结果的原因是因为二进制浮点数的表示是近似表示,值得注意的是这种问题不仅在js中会出现,在其它所有利用浮点数计算的语言中都会存在。为了更好的解决这种问题可以将自己要算的数同时扩大一个倍数,看下面的代码:

1 var x = 3 - 2;
2 var y = 2 - 1;
3 x == y;    //true

日期和时间

  Date是js的语言核心的一部分,这里简单介绍Date的一些简单用法,更详细的介绍将在后续的博客中介绍。

1 var now = new Date();    //获取当前时间
2 var then = new Date(2011,0,1);    //2011年1月1号
3 var later = new Date(2011,0,1,17,10,30)    //2011年1月1号17时10分30秒
4 var elapsed = now - then;    //结果为时间间隔的毫秒数
5 later.getFullYear();    //2011
6 later.getMonth();    //0:月份计数从0开始
7 later.getDate();    //1:每月的日期计数从1开始
8 later.getDay();    //6:0代表星期日,6代表星期六

 

文本

  说起字符串,就需要谈到编码方式了,js采用UTF-16的Unicode编码,这样以来处于“基本多语种平面”的字符都是两个字节,而处于“辅助多语种平面”的字符是四个字节。这意味在js中长度为2的字符串可能有两个字符,也可能只有一个字符。