JavaScript权威指南学习笔记(一)

第3章 类型、值和变量

  • JavaScript有两个特殊的的原始值,null和undefined
  • JavaScript除了数字,字符串、布尔值、null和undefined之外的就是对象

数字

-JavaScript不区分整数值和浮点数。JavaScript中的所有数字均用浮点数表示。

整数型直接量

  1. 十进制整数
  2. 十六进制值,以“0x”或“OX”为前缀,其后跟随十六进制数串
  3. ECMAScript标准不支持八进制直接量
0xff    //15*16+16=255

浮点数直接量

-即在实数后跟字母e或者E

3.14
2345.789
6.02e23 //6.02*10^23
1.473822E-32    //1.473822*10^(-32)

JavaScript中的算术运算

  1. JavaScript中的算术运算在溢出(overflow),下溢(underflow)或被0整除时不会报错。
  2. 溢出(overflow)返回无穷大(Infinite),下溢(underflow)返回负无穷大(-Infinite)
  3. 0除以0没有意义,返回NaN(not-a-number)
  4. isFinite()函数,在参数不是NaN、Infinite、-Infinite是返回true
  5. NaN:它和任何值都不相等,包括自身。(和Oracle的null相似)。应当使用想x!=x来判断,当且仅当x为NaN时,表达式才为True。(只有为NaN时才会出现自己和自己比不相等
  6. isNaN()函数,如果参数是NaN或者一个非数字,则返回true

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

二进制浮点数表示法不能精确地表示0.1这样的数字。

var x=.3-.2;    //0.09999999999999998
var y=.2-.1;    //0.1
x==y        //==>false,两值不相等

日期和时间

var now=new Date();         //当前时间
var then=new Date(2017,6,20);   //2017-07-20,月以0开始,表示为1月
var later=new Date(2017,0,20,17,10,30); //2017-1-20 5:10:30pm

文本

-JavaScript采用UTF-16编码的Unicode字符集,JavaScript字符串是有一串无符号的16位值组成的序列
-那些不能表示为16位的Unicode字符则遵循UTF-16编码的编码规则,用两个16位值组成一个序列,这表示一个长度为2的字符串(2个16位值)有可能表示一个Unicode字符

var p="π";      //π由16位内码表示0x03c0
var e="��";     //��由17位内码表示0x1d452,console.log('\ud835\udc52');
p.length;       //1
e.length;       //2
//在ECMAScript 6中,有一个新的Unicode转义符,能让你指定任意的码位(不用再管是否是16位)
console.log('\u{1d452}'); 

Chapter 24. Unicode and JavaScript
ECMASCRIPT 6中字符串的新特性

New string features in ECMAScript 6

字符串直接量

1.如果想要字符串显示两行,直接加\n

var str1="1234\ntttt";console.log(str1);
1234
tttt

2.ECMAScript 3中,字符串直接必须写在一行中,在ECMAScript 5中,字符串直接量可以拆分成数行,但每行必须以反斜线(\)结束。

转义字符

\xXX 由2位16进制数XX指定的Lation-1字符
\uXXXX 由4位16进制数XXXX指定的Unicode字符

你可能感兴趣的:(javascript)