JavaScript基本数据类型有如下五个
数值类型
布尔类型
字符串类型
Undefined类型
Null类型
与强类型语言如C、Java不同,JavaScript的数值类型不仅包括所有的整形变量,也包括所有的浮点型变量。JavaScript语言中的数值都是以IEEE 754双精度浮点数格式保存。JavaScript中的数值形势非常丰富,完全支持用科学计数法表示。科学计数法形如5.12e2代表5.12乘以10的2次方,5.12E2也代表5.12乘以10的2次方。
科学计数法中E为间隔符号,E不区分大小写。
var a = 5E2; var b = 1.23e-3;注意:数值直接量不要以0开头。因为JavaScript支持八进制和十六进制。八进制以0开头,十六进制以0x或0X开头。
当数值类型超出了其表述范围时,将出现两个特殊值:Infinity(正无穷大)和-Infinity(负无穷大。)
// 定义x为最大的数值 var x = 1.7976931348623157e308; // 再次增加x的值 x = x + 1e292;JavaScript的子串富川必须用引号括起来,此处的引号既可以是单引号,也可以是双引号。
var a = "12345678912aaa"; var a = '12345678912aaa';JavaScript和Java中的字符串主要有两点区别:
JavaScript中的字符串可以用单引号括起来,没有字符和字符串的区别;
JavaScript中比较两个字符串的字符序列是否相等使用 == 即可,无需使用equals()方法。
常用的转义字符
序转义字符使用说明0NUL 字符(\u0000)1\b后退一格(Backspace)退格符(\u0008)2\f换页(Form Feed)(\u000C)3\n换行(New Line)(\u000A)4\r回车(Carriage Return)(\u000D)5\t制表(Tab)水平制表符(\u0009)6’单引号(\u0027)7"双引号(\u0022)8\反斜线(Backslash)(\u005C)9\v垂直制表符(\u000B)10\xNN由两位十六进制数值NN指定的Latin-1字符11\uNNNNN由四位十六进制数NNNN指定的Unicode字符12\NNN由一位到三位八进制数(1到377)指定的Latin-1字符。ECMAScript v3不支持,不要使用这种转义序列布尔类型的值只有两个:true和false。布尔类型的值通常是逻辑运算的结果,或用于标志对象的某种状态。
var a = false; var b = true;Null:
null是js中的关键字,表示空值,null可以看作是object的一个特殊的值,如果一个object值为空,表示这个对象不是有效对象。
Undefined:
undefined不是js中的关键字,其是一个全局变量,是Global的一个属性,以下情况会返回undefined:
使用了一个未定义的变量;var i;
使用了已定义但未声明的变量;
使用了一个对象属性,但该属性不存在或者未赋值;
调用函数时,该提供的参数没有提供:
function func(a){ console.log(a); } func();//undefined 函数没有返回值时,默认返回undefined var aa=fun(); aa; //undefined但如果不进行精确比较,很多时候undefined和null本身就想等,即nullundefined将返回true。如果要精确区分null和undefined,应该考虑使用精确等于符(=)
和其他任何编程语言一样,JavaScript 保留了一些标识符为自己所用。
JavaScript 同样保留了一些关键字,这些关键字在当前的语言版本中并没有使用,但在以后 JavaScript 扩展中会用到。
JavaScript 标识符必须以字母、下划线(_)或美元符($)开始。
后续的字符可以是字母、数字、下划线或美元符(数字是不允许作为首字符出现的,以便 JavaScript 可以轻易区分开标识符和数字)。
JavaScript中的注释分为两种,单行注释和多行注释
示例代码:
// 单行注释---弹出警告框alert("single"); /* 多行行注释---弹出警告框 alert("multiple"); */ alert("EOL"); //行尾注释注意事项
保持良好的注释风格有利于后期维护
关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。关键字也是语言保留的,不能用作标识符。以下是ECMAScript的全部关键字:
break | do | instanceof | type case | else | new | var catch | finally | return | void continue | for | switch | while debugger | function | this | with default | if | throw delete | in | try
保留字也不能用作标识符,尽管保留字在这门语言中还没有任何特定的用途,但它们有可能在将来被用作关键字。以下是ECMA-262第3版定义的全部保留字:
abstract | enum | int | short boolean | export | interface | static byte | extends | long | super char | final | native | synchronized class | float | package | throws const | goto | private | transient debugger | implements | protected | volatile double | import | public
第5版把在非严格模式下运行时的保留字缩减为下列这些:
class | enum | extends | super const | export | import
在严格模式下,第五版还对以下保留字施加了限制”
implements | package | public interface | private | static let | protected | yield
注意:let和yield是第5版新增的保留字,其他都是第3版定义的。
在实现ECMAScript3和JavaScript引擎中使用关键字作标识符,会导致“Identifier Expected”错误。而使用保留字作标识符可能会也可能不会导致相同的错误,具体取决于特点的引擎。
除了上面列出的保留字和关键字。ECMA-262第5版对eval和arguments还施加了限制。在严格下,这两个名字也不能用作标识符或属性名,否则会抛出错误。