JS基础总结

191 阅读6分钟

一、JS的基本语法

1、语句:

JS的代码是一行一行执行的,一般一行就是一个语句,一个语句后面要用分号隔开

2、变量:

变量的声明和变量的赋值,两条语句,可以一起写 var a; a = 1; 等同于 var a = 1; (注意:JS的变量名区分大小写,A和a是两个不同的变量)

JS引擎的工作方式:先解析代码,获取所有被声明的变量,然后再一行一行地运行,即所有的变量声明的语句,都会被提升到代码的头部,最先执行,这就叫做代码的提升。

3、标识符

识别各种值的合法名称 标识符的命名规则: 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9

4、注释

5、区块

使用大括号,把多个相关语句组合在一起,称为区块block。 对于var命令来说,使用区块并不能构成单独的作用域,即是否使用区块并无区别。 区块一般用在更复杂的语法结构中,比如:for,if,while,function等。

6、条件语句

6.1 if结构

if (条件表达式) { 语句; }

6.2 if...else结构

if(条件表达式) { 语句1; } else { 语句2; } 对同一个变量进行多次判断时,多个if...else语句可以连写在一起。

6.3 switch结构

多个if...else连在一起使用的时候,可以转为使用更方便的switch结构。

switch (fruit) {
  case "banana":
    // ...
    break;
  case "apple":
    // ...
    break;
  default:
    // ...
}

注意:每个case代码块内部的break语句不能少,否则会接下去执行下一个case代码块,而不是跳出switch结构。

6.4 三元运算符

(条件) ? 表达式1 : 表达式2

如果“条件”为true,则返回“表达式1”的值,否则返回“表达式2”的值。

7. 循环语句

7.1 while循环

While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。

while (条件) {
  语句;
}

7.2 for循环

可以指定循环的起点、终点和终止条件。

for (初始化表达式; 条件; 递增表达式) {
  语句
}

7.3 do...while 循环

do {
  语句
} while (条件);

先运行循环体,后判断条件(即不管条件是否为真,do...while循环至少执行一次)

7.4 break语句和continue语句

break语句用于跳出循环,例如:

var i = 0;

while(i < 100) {
  console.log('i 当前为:' + i);
  i++;
  if (i === 10) break;
}

也可跳出for循环 continue语句用于终止本轮循环,开始下一轮循环,例如:

var i = 0;

while (i < 100){
  i++;
  if (i % 2 === 0) continue;
  console.log('i 当前为:' + i);
}

7.5 标签

相当于定位符,用于跳转到程序的任意位置,例如:

top:
  for (var i = 0; i < 3; i++){
    for (var j = 0; j < 3; j++){
      if (i === 1 && j === 1) break top;
      console.log('i=' + i + ', j=' + j);
    }
  }

可直接跳出双层循环。

二.数据类型

1.数据类型概述

1.1 数据类型分类

一共有六种:

  • 数值(number):整数和小数(比如13.14)。
  • 字符串(string):文本(比如Hello World)。
  • 布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)。
  • undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值。 null:表示空值,即此处的值为空。
  • 对象(object):各种值组成的集合。

1.2 type of 数据类型

typeof可以用来检查一个没有声明的变量,而不报错。 数值、字符串、布尔值分别返回numberstringboolean。对象返回objectundefined返回undefinednull返回object。 (注:null的类型是object,这是由于历史原因造成的。1995年的 JavaScript 语言第一版,只设计了五种数据类型(对象、整数、浮点数、字符串和布尔值),没考虑null,只把它当作object的一种特殊值。后来null独立出来,作为一种单独的数据类型,为了兼容以前的代码,typeof null返回object就没法改变了。)

2. null,undefined和布尔值

null表示空值,undefined表示未定义的值。 布尔值只有truefalse两个值

3. 数值

3.1 概述

JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,11.0是相同的,是同一个数。浮点数不是精确的值。

3.2 特殊数值

3.2.1 NaN

NaN不是独立的数据类型,是一个特殊的数值,它的数据类型依然属于Number NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。

NaN的运算规则: NaN不等于任何值,包括它本身。 NaN在布尔运算时被当作falseNaN与任何数(包括它自己)的运算,得到的都是NaN

3.2.1 Infinity

Infinity表示“无穷”,用来表示两种场景。一种是一个正的数值太大,或一个负的数值太小,无法表示;另一种是非0数值除以0,得到InfinityInfinity有正负之分,Infinity表示正的无穷,-Infinity表示负的无穷。 Infinity大于一切数值(除了NaN),-Infinity小于一切数值(除了NaN)。

Infinity的四则运算: 0乘以Infinity,返回NaN;0除以Infinity,返回0Infinity除以0,返回InfinityInfinity加上或乘以Infinity,返回的还是InfinityInfinity减去或除以Infinity,得到NaNInfinitynull计算时,null会转成0,等同于与0的计算。Infinityundefined计算,返回的都是NaN

3.3 与数值相关的全局方法✔

3.3.1 parseInt()

parseInt方法用于将字符串转为整数。 parseInt方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。

3.3.2 parseFloat()

parseFloat方法用于将一个字符串转为浮点数。

3.3.3 isNaN()

isNaN方法可以用来判断一个值是否为NaN。但是,isNaN只对数值有效,如果传入其他值,会被先转成数值。对于对象,数组和字符串,isNaN返回true。原因:传入字符串的时候,字符串会被先转成NaN,所以最后返回true。但是,对于空数组和只有一个数值成员的数组,isNaN返回false

3.3.4 isFinite()

isFinite方法返回一个布尔值,表示某个值是否为正常的数值。

4 字符串

4.1 概述

字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。 如果要在单引号字符串的内部,使用单引号,就必须在内部的单引号前面加上反斜杠,用来转义。双引号字符串内部使用双引号,也是如此。例如:

'Did she say /'Hello'/?'
// "Did she say 'Hello'?"

"Did she say /"Hello"/?"
// "Did she say "Hello"?"

4.2 转义符

常用的转义符主要有一下这些:

  • \0 :null
  • \b :后退键
  • \f :换页符
  • \n :换行符
  • \r :回车键
  • \t :制表符
  • \v :垂直制表符
  • ' :单引号
  • " :双引号
  • \ :反斜杠

5 对象