JaveScript发展:
1994年,网景公司(Netscape)发布了Navigator浏览器0.9版(只能浏览无法互动)
网景公司和sun公司合作 Brendan Eich 10天设计Java Script。
Jave Scrip的组成:
ECMAscript<js基本语法> +DOM<文档对象模型> +BOM<浏览器对象模型>
常量:储存的数据不会发生变化
变量:储存的数据会发生变化
var 变量名 = 值
变量命名规范和规则:
1:由数字 字母 _ $ 组成
2:数字不能开头
3:不能是关键字或保留字
4:严格区分大小写
5:建议使用小驼峰命名法
6:见名识意
数据类型:
分类:
基本数据类型和复杂数据类型;
1:基本数据类型:
<1>Number(数字类型)
例:1,2 ,3,50,NaN(不是一个数字,但是一个number类型),080(八进制), 0x12a(十六进制),0101001(二进制)。
<2>String(字符串类型)<由单引号或双引号括起来的内容>
例:"123", "哈哈哈",' ' ,'hhh'。
<3>Boolean(布尔类型)<只有两个值:true和false>
例:true,false。
<4>Undefined(未定义类型)
例:var a;
console.log(a);
<5>Null(空值)
例:var a = null;
2:复杂数据类型
<1>object(引用数据类型)
<2>function(函数类型)
判断数据类型:
可以使用运算符typeof来检查一个变量的类型
语法:typeof x
typeof(x)
检查数值时 会返回number
检查字符串时 会返回string
检查布尔值时 会返回boolean
检查undefined时 会返回undefined
检查unll时 会返回object
判断一个变量是不是数字
可以使用 isNaN (is not a number)这个方法来判断一个变量是不是非数字
是则true
// 如果变量不是一个数字
var s1 = 'Jack'
console.log(isNaN(s1)); //=> true
不是则false
// 如果变量是一个数字
var n1 = 100;
console.log(isNaN(n1)); //=> false
数据类型转换
1:转Number
方式一:
使用Number()函数<纯数字转换>
<1>字符串转数字
纯数字的字符串,则直接转换为数字
如果字符串中有非数字的内容 则转换为NaN
如果字符串是一个空串/全是空格的字符 则为0
<2>布尔转数字
true 转为1
false 转为0
<3>Null转数字 转为0
<4>Undefined转数字 转为NaN
方式二 <专门对付字符串>
parseInt() <把一个字符串转换为整数>
parseFloat() <把一个字符串转换为一个浮点数>
parseFloat 将它的字符串参数解析成为浮点数并返回。如果出现非数字的就忽略该字符以及之后的所有字符,返回当前以解析的字符串。
如果字符串中的第一个字符就不是数字,则直接返回NaN。
方式三<隐式转换>
+,-,*,/,%
2:转换为String
方式一:
调用被转换数据类型的to String()方法
a.tostring();
该方法不会影响到原变量,会将结果返回
***null 和undefined这两个值没有tostring()方法
方式二
调用string()函数
a = string(a);
都适用
方式三
+(不会相加,会拼接)
3:转换为Boolean
使用Boolean()函数
数字——>布尔 <除0和NaN,其余都为true>
字符串——>布尔 <除空串,其余都为true>
null和undefined都会转换为false
对象也会转换为true
运算符
1:数字运算符
-
+
-
只有符号两边都是数字的时候才会进行加法运算
-
只要符号任意一边是字符串类型,就会进行字符串拼接
-
-
-
-
会执行减法运算
-
会自动把两边都转换成数字进行运算
-
-
*
-
会执行乘法运算
-
会自动把两边都转换成数字进行运算
-
-
/
-
会执行除法运算
-
会自动把两边都转换成数字进行运算
-
-
%
-
会执行取余运算
-
会自动把两边都转换成数字进行运算
-
2:赋值运算符
-
=
-
就是把
=
右边的赋值给等号左边的变量名 -
var num = 100
-
就是把 100 赋值给 num 变量
-
那么 num 变量的值就是 100
-
-
+=
var a = 10; a += 10; console.log(a); //=> 20
-
a += 10
等价于a = a + 10
-
-
-=
var a = 10; a -= 10; console.log(a); //=> 0
-
a -= 10
等价于a = a - 10
-
-
*=
var a = 10; a *= 10; console.log(a); //=> 100
-
a *= 10
等价于a = a * 10
-
-
/+
var a = 10; a /= 10; console.log(a); //=> 1
-
a /= 10
等价于a = a / 10
-
-
%=
var a = 10; a %= 10; console.log(a); //=> 0
-
a %= 10
等价于a = a % 10
-
3:比较运算符
-
==
-
比较符号两边的值是否相等,不管数据类型
-
1 == '1'
-
两个的值是一样的,所以得到 true
-
-
===
-
比较符号两边的值和数据类型是否都相等
-
1 === '1'
-
两个值虽然一样,但是因为数据类型不一样,所以得到 false
-
-
!=
-
比较符号两边的值是否不等
-
1 != '1'
-
因为两边的值是相等的,所以比较他们不等的时候得到 false
-
-
!==
-
比较符号两边的数据类型和值是否不等
-
1 !== '1'
-
因为两边的数据类型确实不一样,所以得到 true
-
-
>=
-
比较左边的值是否 大于或等于 右边的值
-
1 >= 1
true -
1 >= 0
true -
1 >= 2
false
-
-
<=
-
比较左边的值是否 小于或等于 右边的值
-
1 <= 2
true -
1 <= 1
true -
1 <= 0
false
-
-
>
-
比较左边的值是否 大于 右边的值
-
1 > 0
true -
1 > 1
false -
1 > 2
false
-
-
<
-
比较左边的值是否 小于 右边的值
-
1 < 2
true -
1 < 1
false -
1 < 0
false
-
4:逻辑运算符
-
&&(与)
-
进行 且 的运算
-
符号左边必须为 true 并且右边也是 true,才会返回 true
-
只要有一边不是 true,那么就会返回 false
-
true && true
true -
true && false
false -
false && true
false -
false && false
false
-
-
||(或)
-
进行 或 的运算
-
符号的左边为 true 或者右边为 true,都会返回 true
-
只有两边都是 false 的时候才会返回 false
-
true || true
true -
true || false
true -
false || true
true -
false || false
false
-
-
!(非)
-
进行 取反 运算
-
本身是 true 的,会变成 false
-
本身是 false 的,会变成 true
-
!true
false -
!false
true
-
一元运算符
1. ++
进行自增运算
分成两种,**前置++** 和 **后置++**
<1> 前置++,会先把值自动 +1,在返回
例
var a = 10;
console.log(++a);
// 会返回 11,并且把 a 的值变成 11
<2>后置++,会先把值返回,在自动+1
var a = 10;
console.log(a++);
// 会返回 10,然后把 a 的值变成 11
2. --
- 进行自减运算
- 分成两种,**前置--** 和 **后置--**
- 和 `++` 运算符道理一样