JS 基础

基本的语法

js函数声明不需要;分号,但是赋值语句要加;分号

function functionName(arg0,arg1,arg2){  
//函数声明  
}  
var functionName=function(arg0,arg1,arg2){  
//函数表达式  
};(注意分号)  

注释

单行注释

//注释内容  

多行注释

/*  
注释内容  
*/  

JS严格区分大小写

JS中每条语句以分号(;)结尾如果不写分号,浏览器会自动添加,但是会消耗一些系统资源, 而且有些时候,浏览器会加错分号,所以在开发中分号必须写

JS中会自动忽略多个空格和换行,所以我们可以利用空格和换行对代码进行格式化。

字面量和变量

字面量

字面量实际上就是一些固定的值,比如 1 2 3 4 true false null NaN "hello"
字面量都是不可以改变的。

由于字面量不是很方便使用,所以在JS中很少直接使用字面量

变量

变量可以用来保存字面量,并且可以保存任意的字面量

一般都是通过变量来使用字面量,而不直接使用字面量,而且也可以通过变量来对字面量进行一个描述

声明变量

使用var关键字来声明一个变量

var a;  

为变量赋值

a = 1; 

声明和赋值同时进行

var a = 456;   

标识符

在JS中所有的可以自主命名的内容,都可以认为是一个标识符,
是标识符就应该遵守标识符的规范。

比如:变量名、函数名、属性名

规范:
1.标识符中可以含有字母、数字、_$
2.标识符不能以数字开头
3.标识符不能是JS中的关键字和保留字
4.标识符一般采用驼峰命名法 aaBbb

数据类型

六种数据类型

JS中一共分成六种数据类型 5个基本数据类型+object

  • String 字符串
  • Number 数值
  • Boolean 布尔值
  • Null 空值
  • Undefined 未定义
  • Object 对象

其中基本数据类型有 5个

typeof运算符检查数据类型

1.String 字符串

JS中的字符串需要使用引号引起来双引号或单引号都行
在字符串中使用\作为转义字符

\'  ==> '  
\"  ==> "  
\n  ==> 换行  
\t  ==> 制表符  
\\  ==> \	  

使用typeof运算符检查字符串时,会返回"string"

2.Number 数值

JS中所有的整数和浮点数都是Number类型

最大能表示的值:Number.MAX_VALUE=1.7976931348623157e+308

特殊的数字:能赋值给变量
Infinity 正无穷 a = Infinity ,能赋值
-Infinity 负无穷
NaN 非法数字(Not A Number)
其他进制的数字的表示:
0b 开头表示二进制,但是不是所有的浏览器都支持
0 开头表示八进制
0x 开头表示十六进制

使用typeof检查一个Number类型的数据时,会返回 number (包括NaNInfinity

3.Boolean 布尔值

布尔值主要用来进行逻辑判断,布尔值只有两个
true 逻辑的真
false 逻辑的假
使用 typeof 检查一个布尔值时,会返回boolean

4.Null 空值

空值专门用来表示为空的对象,Null类型的值只有一个 null
使用typeof检查一个Null类型的值时会返回 object

5.Undefined 未定义

如果声明一个变量但是没有为变量赋值此时变量的值就是undefined
该类型的值只有一个 undefined
使用typeof检查一个Undefined类型的值时,会返回 undefined

引用数据类型

Object 对象

类型转换

类型转换就是指将其他的数据类型,转换为String Number 或 Boolean

转换为String

#### 方式一(强制类型转换):
调用被转换数据的toString()方法
例子:
var a = 123;
a = a.toString();
注意:这个方法不适用于null和undefined
由于这两个类型的数据中没有方法,所以调用toString()时会报错

#### 方式二(强制类型转换):
调用String()函数
例子:

var a = 123;  
a = String(a);  

原理:对于Number Boolean String都会调用他们的toString()方法来将其转换为字符串,对于null值,直接转换为字符串"null"。对于undefined直接转换为字符串undefined

#### 方式三(隐式的类型转换):
为任意的数据类型 +""
例子:

var a = true;  
a = a + ""; 

原理:和String()函数一样

转换为Number

方式一(强制类型转换):

调用Number()函数
例子:

var s = "123";  
s = Number(s); 

转换的情况:

  1. 字符串 > 数字
    如果字符串是一个合法的数字,则直接转换为对应的数字
    如果字符串是一个非法的数字,则转换为NaN
    如果是一个空串或纯空格的字符串,则转换为0
  2. 布尔值 > 数字
    true转换为1
    false转换为0
  3. 空值 > 数字
    null转换为0
  4. 未定义 > 数字
    undefined 转换为NaN

方式二(强制类型转换):

调用parseInt()或parseFloat()
这两个函数专门用来将一个字符串转换为数字的

如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后在操作 parseInt()
可以将一个字符串中的有效的整数位提取出来,并转换为Number
例子:

var a = "123.456px";  
a = parseInt(a); //123  

如果需要可以在parseInt()中指定一个第二个参数,来指定进制parseFloat()可以将一个字符串中的有效的小数位提取出来,并转换为Number
例子:

var a = "123.456px";  
a = parseFloat(a); //123.456  

方式三(隐式的类型转换):

使用一元的+来进行隐式的类型转换
例子:

var a = "123";  
a = +a;  

原理:和Number()函数一样

转换为布尔值

方式一(强制类型转换):

使用Boolean()函数
例子:

var s = "false";  
s = Boolean(s); //true 

转换的情况
字符串 > 布尔
除了空串其余全是true

数值 > 布尔
除了0和NaN其余的全是true

null、undefined > 布尔
都是false

对象 > 布尔
都是true

方式二(隐式类型转换):

为任意的数据类型做两次非运算,即可将其转换为布尔值
例子:

var a = "hello";  
a = !!a; //true