1 数据类型
<script>
/*
2 引用数据类型
object 对象类型
3 number 数字类型
包含所有的数字(整数,浮点数,正数,负数,极大极小数),Infinity(分母为零),NaN(not a number)
4 string 字符串类型
引号包含的任意文本,单双引号都可以
5 boolean 布尔类型
包含 true false
var bool1 = true //boolean
var bool1 = false //boolean
console.log( 3 > 2 ) //boolean
6 undefined 未定义类型
未定义类型表示数据类型不确定
声明一个变量,没有赋值,默认值为undefined,数据类型为undefined
var x;
console.log(x,typeof x); undefined undefined
7 null 空类型
null表示的数据类型确定为object
null用来主动释放对象
注意 typeof时返回object
var obj = null;
console.log(obj,typeof obj); //null object
8 object 对象类型
大括号包含的一组值对象由键值对构成,多个键值对用逗号隔开,最后一个键值对不加逗号
键值对是由键值和键名组成,键名和键值之间用冒号隔开
var 变量名 = {
键名:键值,
键名:键值,
键名:键值,
键名:键值,
键名:键值
}
9 判断数据类型
typeof 变量名
10 Javascript拥有动态的数据类型
var x;
console.log(x,typeof x);//undefined undefined
//赋值
x = 10;
console.log(x,typeof x);//10 number
//重新赋值
x = "哈哈";
console.log(x,typeof x);//哈哈 string
*/
</script>
<script>
//创建对象
var obj = {
userName: "张三",
age: 99
};
console.log(obj,typeof obj);
</script>
输出展示
2 比较运算符
<script>
/*
1 比较运算符
比较两个值的大小 返回一个布尔值(true 或 false)
> < >= <= == != === !==
== 等于,只判断数值
===全等,绝对等于,即判断数据类型也判断数值
!= == 取反
!== ===取反
console.log(undefined == null);//true 都没有值
console.log(undefined === null);//false 数据类型不同undefined object
console.log(NaN == NaN); //false
console.log(NaN === NaN); //false
console.log(NaN != NaN); //true
console.log(NaN !== NaN); //true
*/
</script>
3 逻辑运算符
<script>
/*
2 逻辑运算符
连接多个表达式,返回一个布尔值(true 或 false)
&& 逻辑与 并且 所有的表达式都为true,结果才为true,有一个为false结果就为false
|| 逻辑或 或者 所有的表达式都为false,结果才为false,有一个为true结果就为true
! 逻辑非 取反 表达式为true取反就为true,反之亦然
注意: 逻辑与的优先级大于逻辑或
*/
</script>
逻辑运算符演示
<script>
var a = 10;
var b = 5;
var c = 8;
console.log(a>b&&b<c); //t
console.log(a>b&&b>c); //f
console.log(a<b&&b<c); //f
console.log(a<b||b<c); //t
console.log(a>b||b<c); //t
console.log(a>b||b>c); //t
console.log(a>b||b<c&&a<c); //t
console.log(a>b||b<c&&a>c); //t
console.log(a>b&&b<c||a>c); //t
console.log(a>b&&b>c||a>c); //t
console.log(!(a>b)); //f
console.log(!(a<b)); //t
</script>
输出到控制台的结果
4 赋值运算符
<script>
/*
3 赋值运算符
= 等号右边的值赋值给左边
+= x += y x = x + y 下同
-=
*=
/=
%= 要的是余数
*/
</script>
<script>
x = 7;
y = 3;
console.log(x/=y)
</script>
5 算术运算符
<script>
/*
算术运算符
+ - * / %(取余,取模) ++(自增) --(自减)
%(取余,取模) 应用 判断奇偶数、倍数
++ 相当于自己加1 x++ 相当于 x = x + 1
-- 相当于自己加1 x-- 相当于 x = x - 1
+运算碰到字符串,直接进行字符串拼接,返回string类型
- * / %遇到字符串,都转换成number类型进行计算,如果不能转换成数字,则返回NaN,数据类型未number
true转换1 false转换为0
++ --
前++和后++,对于变量自己来说没有区别都是+1
前++ 先赋值 在加1
后++ 先加1 再赋值
*/
</script>
<script>
/* var x = 5;//number
var y = 2;//number
comsole.log(x + y);//7
comsole.log(x - y);//3
comsole.log(x * y);//10
comsole.log(x / y);//2.5
comsole.log(x % y);//1 */
/* var x = '5';//string
var y = 2;//number
comsole.log(x + y);//52 字符串拼接 string
comsole.log(x - y);//3
comsole.log(x * y);//10
comsole.log(x / y);//2.5
comsole.log(x % y);//1 */
/* var x = '5a';//string
var y = 2;//number
comsole.log(x + y);//5a2 字符串拼接 string
comsole.log(x - y);//NaN
comsole.log(x * y);//NaN
comsole.log(x / y);//NaN
comsole.log(x % y);//NaN */
/* var x = true; //boolean 转换为1
var y = false; //boolean 转换为0
var z = "5"; //string
var a = 5; //number
console.log(x + z);//true5 字符串拼接 string
console.log(y + z);//false5
console.log(x + y);//1
console.log(x + a);//6
console.log(y + a);//5 */
// 不管前++还上后++对于变量自己来说没有区别,都是+11
/* var x = 10;
x++; //后++ 相当于 x = x + 1;
console.log(x); //11
var x = 10;
++x; //前++ 相当于 x = x + 1;
console.log(x); //11 */
/* var x = 10;
var y = ++x; 前++ 现执行+1 再赋值
console.log(X);//11
console.log(y);//11 */
/* var x = 10;
var y = x++; //后++ 先赋值,再执行+1
console.log(x);//11
console.log(y);//10 */
/* var x = 10;
console.log(++x);//11 x=11
console.log(x++);//11 x=12
console.log(x++);//12 x=13
console.log(++x);//14 x=14
console.log(x);//14 */
var x = 10;
var y = x++ + ++x;
console.log(x);//12
console.log(y);//22
</script>