最后
编程基础的初级开发者,计算机科学专业的学生,以及平时没怎么利用过数据结构与算法的开发人员希望复习这些概念为下次技术面试做准备。或者想学习一些计算机科学的基本概念,以优化代码,提高编程技能。这份笔记都是可以作为参考的。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
注:ES6新增了第7种类型Symbol。
========================================================================
1.1.1 基础概念及语法
数值包括整数和小数(或者叫浮点数)两种,例如1
和3.14
。
- 实际上,在JavaScript内部,所有的数字都是以64位浮点数形式存储,即便整数也是如此。
注:某些运算只有整数才能完成,此时 JavaScript 会自动把64位浮点数,转成32位整数,然后再进行运算。
- 由于浮点数不是精确的值,因此在涉及小数的运算或比较时要格外小心。
-
JavaScript 能够表示的数值范围为21024~2-1023(开区间)。大于等于21024则会发生“正向溢出”,此时会返回
Infinity
;小于等于2-1075则会发生“负向溢出”,则会返回0
。 -
JavaScript提供了4种进制的整数表示方法:十进制、八进制、十六进制以及二进制。JavaScript 内部会自动将八进制、十六进制、二进制转为十进制。
-
十进制:没有前导0的数值。
-
八进制:前缀为
0o
(第二个是字母o)或00
的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。 -
十六进制:前缀为
0x
或0X
的数值。 -
二进制:前缀为
0b
或0B
的数值。
- 在JavaScript内部存在2个
0
,一个是+0
,一个是-0
,区别就是表示它们的64位二进制数的符号位不同。但是它们是等价的(严格意义上的相等)。唯一不同的是当作分母时返回值不同。具体看如下测试:
NaN
作为一个特殊值,表示非数字(即Not a Number),测试如下:在下面的例子中,由于indexOf()
方法执行的是严格的相等运算(即===
),对NaN
不成立,因此会返回-1
。
Infinity
还有正负之分,Infinity
表示正无穷,-Infinity
表示负无穷。关于Infinity比较和运算的测试如下:
1.1.2 parseInt()方法
parseInt()
方法:用于将字符串转为整数。下面是一些典型的测试例子。
注意最后两个例子:若小数点前的数字多于21位,或者小数点后的0多于5位,则JavaScript会自动将数值转为科学计数法表示。
其实parseInt()
方法还可以接受第二个参数,第二个参数的范围位2~36
,表示被解析值的进制,返回该值对应的十进制数。由于第二个参数默认值为10,因此一般都省略第二个参数。
1.1.3 parseFloat()方法
parseFloat()
方法:用于将字符串转为浮点数。
1.1.4 isNaN()方法
isNaN()
方法:用来判断一个值是否为NaN
。
1.1.5 isFinite()方法
isFinite()
方法:用来判断一个值是否为正常的数值,其中像:Infinity
、-Infinity
、NaN
、undefined
、null
都为非正常数值,因此都会返回false
,而其他的数值则都返回true
。
1.2.1 基础概念及语法
- 字符串即我们所说的文本。具体地,字符串就是0个或多个排在一起的字符,并放在单引号或双引号之中。
规范:由于 HTML 语言的属性值使用双引号,所以很多项目约定 JavaScript 语言的字符串只使用单引号。
-
单引号内可以用双引号,双引号内也可以用单引号,若单引号内用单引号或双引号内用双引号,则可以借助转义符
\
来间接使用。 -
如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠,当然也可以使用
+
。
//方式1
var longString = 'Long \
long \
long \
string’;//输出时为单行,即“Long long long string”
//方式2
var longString = 'Long ’
-
'long ’
-
'long ’
-
‘string’;
1.2.2 转义符
反斜杠\
在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。
常见的需要转义的特殊字符有:
-
\0
:null(\u0000
) -
\b
:后退键(\u0008
) -
\f
:换页符(\u000C
) -
\n
:换行符(\u000A
) -
\r
:回车键(\u000D
) -
\t
:制表符(\u0009
) -
\v
:垂直制表符(\u000B
) -
\'
:单引号(\u0027
) -
\"
:双引号(\u0022
)
更多面试题
**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
[外链图片转存中…(img-j8v0QJlx-1715580678027)]