JavaScript的基础知识
阅读原文时间:2023年07月10日阅读:1

1,标识符

标识符是程序中常量或变量命名的一种术语称呼,并不是所有的字符组成都是一个合法的标识符,规范如下:

  1. 标识符的组成部分可以是字母,数字,下划线或美元($)符号
  2. 标识符开头是字母,下划线或美元($)符号,而不能是数字
  3. 标识符不能出现一些特殊符号(如:¥,%,+)也不能存在空格
  4. 不能是JavaScript中的保留字(即关键字),如:var,new,if,else 等
  5. 标识符区分大小写,myName和MyName是两个不同的标识符

以下标识符是正确的:

myPencil  myName  _myAge  $mySex  xyz123  _123abc  Var  New

以下标识符时错误的

123abc  my+Name  my,.Age  var  new

2.JavaScript中的数据类型

  1. 数值型(number)

整型

整型数据,即我们通常所说的整数,如:1、23、100、200等等。

整型数据可以是十进制、八进制和十六进行,默认采用的是十进制

如果需要表示八进制数据,则必须以数字0开头。如八进制037,其十进制值为31。

如果需要表示十六进制数据,则必须以0x或0X开头,其中0为数字零。如十六进制0x3D,其十进制值为61。

浮点型

浮点型数据,即我们通常所说的小数。如:3.14、12.34、100.5等等。

实型数据除了可以使用常用格式外,还可使用科学计数法来表示。如:8.2的8次方——8E+8;8.2的负8次方——8.2E-8。

特殊数值

Infinity_:_当一个正浮点型数据大于或等于其所能表示的最大值时(2的1024次方),则其结果是一个特殊的正无穷大,JavaScript将它标识为Infinity。

-__Infinity_:_当一个负浮点型数据小于或等于其所能表示的最小值时(-2的1024次方),则其结果是一个特殊的负无穷大,JavaScript将它标识为- Infinity。

NaN_:_即Not a Number,表示一个值并不是合法的数值形式,如字符串(纯数字字符串除外)。这个数值比较特殊,它和任何数值都不相等,包括它自己在内,所以我们专门通过函数isNaN()来检测这个值!

2. 字符串型

JavaScript中没有单独的字符常量,而是有若干字符组成的字符串常量

字符串型常量必须使用单引号('')或双引号("")将各组成字符括起来,如"ab","abook"

当一个字符串不包括任何字符时,其形式为""或''表示一个空字符串

在JavaScript中,有些特殊的符号不能直接进行输出,在此需要一种特殊的字符常量来表示,即转义字符

转义字符必须以反斜杠(\)开头,后面跟一个或几个特定的字符

转义字符

Unicode码

含义

\b

\u0008

退格

\t

\u0009

横向跳到下一个制表位置

\n

\u000A

回车换行

\v

\u000B

竖向跳到下一制表位置

\f

\u000C

走纸换页

\r

\u000D

回车

\”

\u0022

双引号

\’

\u0027

单引号

\\

\u005C

反斜杠

\xnn

十六进制代码nn(00~FF)表示的字符。

\unnnn

十六进制代码nnnn(0000~FFFF)表示的Unicode编码。

\x3c

字符“<”

\x3e

字符“>”

3,布尔型(boolean)

布尔值用于表示一个事物的正反面

该类型只有true和false,通常用于条件判断语句

4,空值型(null)

这是一个值,null,表示一个变量所指向的对象为空值!

它表示“无值”,并不表示“null”这4个字母,也不是0和空字符串,而是JavaScript中的一种对象类型

null可用于初始化变量,以避免产生错误,也可以用于清除变量的内容,从而释放与变量相关联的内存空间。当把null赋值给某个变量后,这个变量中就不再保存任何有效的数据了!

5,未定义型(undefined)

这是一个值,undefined,表示变量未声明或未初始化或对象的某个属性不存在。

null表示赋给变量的值为“空”,“空”是一个特殊意义的值,而undefined则表示变量并未存在或未初始化,变量的值还处于未知状态!

在使用等于运算符“==”的时候,null和undefined均和自己相等,同时互相之间也相等,但和其他任何值都不相等。

严格等于运算符“===”将null和undefined的值看做不相等。

3,JavaScript中数据类型的转换

隐式转换

数值字符串与数值相加,进行字符串的连接运算,最后结果为string类型

"123"+123 ="123123"

数值字符串与数值相减,进行算术减法运算,最后结果为number类型

"123"-123 = 0

字符串与其他任何类型的数据进行"+"运算,所进行的字符串的连接运算,最后的结果为string类型

null+”123”+undefined+”abc”+123+”fgh”+true = ”null123undefinedabc123fghtrue”

true与数值进行想加减,将自动转换为1,然后参与运算,最后结果为number类型!

true+true+1 = 3

false与数值进行相加减,将自动转换为0然后参与运算,最后结果为number类型!

true+false+1=2

null与null、null与数值相加减,null的值始终为0,最后结果为number!

null+null+1 = 1

undefined与数值相加减,最后的结果始终为NaN

null+undefined+true+1 = NaN

基本转换

string()

将其他类型的值转换为string类型

String(280)+ String(true) = “280true”

Number()

将可以转换为数值的其他类型转换为number类型

Number(”123”)+Number(true) +Number(false) +Number(null) = 124

Boolean()

将其他类型的值转化为boolean类型!除了0、null、undefined、NaN、“”转换后的结果为false外,其他的值都将被转换为true。

String(“123”+Boolean(0)+Boolean(null)+Boolean(“ab”)) = “123falsefalsetrue”

提取转换

parseInt(string,n)

该函数将string字符串参数中最前面能够转换成整型数值的子字符串转换为数值!

其中参数n用来指定字符串参数将以什么进制来进行转换,可以是2、8、10、16以及2~32之间的任意数值,如果不指定该参数,则默认以10进制来进行转换,转换后的值都将以十进制的形式存在!(注意:当不指定n参数时,如果字符串的首字符为数字0,将会按照8进制进行转换!)
   当string字符串首部不存在数字子串时,该函数最终返回NaN!

parseInt(“100.23abc”) = 100
parseInt(“+100.23abc”) = 100
parseInt(“-100.23abc”) = -100
parseInt(“0100.23abc”) = (0100)8 = 64
parseInt(“100.23abc”,2) = (100)2 = 4
parseInt(“100.23abc”,16) = (100)16 = 256
parseInt(“100.23abc”,8)= (100)8 = 64

parseFloat(string)

该函数将string字符串参数中最前面能够构成实数的字符串转换为数值

当string字符串收不不存在数字字符串时,改函数最终返回NaN

parseFloat(“123.23abc”) = 123.23
parseFloat(“+123.23abc”) = 123.23
parseFloat(“-123.23abc”) = -123.23
parseFloat(“123.23.34ab”) = 123.23
parseFloat(“.123.23.34ab”) = 0.123
parseFloat(“0123.adf”) = 123

eval(string_expression)

该函数将计算字符串表达式的值并返回

如果字符串不是一个合法的表达式,将会发生异常,我们可以通过try…catch语句来判断此种情况的发生!

eval(“3+3+3+3+3*10”) = 42
eval(“3+3+4+(3+2)*10”) = 60
eval(“-3+4+3+4*10/2”) = 28
eval(“3>2”) = true
eval(“3++34-2”) //将会引发异常!