JS的数据类型
数据类型+解释
undefined
如var num;变量num没有初始值将被赋予undefined[基本数据类型]。
null
表示一个空值,与undefined值相等[对象]。
number
例:var num=10; //整数,var num=10.5; //浮点型。
boolean
布尔型,true和false。(严格大小写)
string
被引号(单引号或双引号)括起来的文本,如:var string1="你真帅";
object
属性集合,每个属性都由"名/值"成对构成,如{name:'小明',age:12}(最后一个没有逗号)
typeof 变量名; 可查看变量是什么数据类型,
这里我们就用typeof验证前面的数据类型:
<script>
//声明一个变量
var a;
//用另一个变量接收一下typeof
var nam = typeof a;
//可以用alert或console.log();打印出来看一下,
//这里用alert更直观
alert(nam);
</script>
这里写一个打打样,后面以下照着样式就能验证,类型在后面标注好了
var a; //undefined
var a=null; //object
var a=10; //number
var a=10.5; //number
var a=true; //boolean
var a="10"; //string
object单独写一下:
<script>
var a={
name:'小明',
age:18,
hobby:'js'
};
var nam = typeof a;
alert(nam);
</script>
算术运算符
运算符类型与相应运算符
算术运算符 +, –, *, /, %, ++, ––.
赋值运算符 =
比较运算符 >, <, >=, <=, ==, !=
逻辑运算符 &&, ΙΙ, !
+:加号
<script>
var a=1;
var b=2;
var c=a+b;
console.log(c);
</script>
那当a与b数据类型不同,比如b是string字符串类型,此时+就起到了拼接的作用:
<script>
var a=1;
var b='2';
var c=a+b;
console.log(c);
</script>
那拼接后的变量c的数据类型是什么呢?
console.log(typeof c);看一下
可以看到它这个c转成了引用数据类型,为啥?这是因为number存储的长度比string存储长度短。
就好比两个桶,都装着水,一个大一个小,我们不知道水有多少,倒在一起,肯定是倒进大桶里。
加号也可以实现内容的拼接,如:
console.log('输出结果是:'+ c);
这和我们之前说过的java是一样的,不只是java对于这些语言类,他们很多知识都是相通的。
–:减号
<script>
var a=1;
var b=2;
var c=a-b;
console.log(c);
</script>
如果我们再把b数据类型变一下
<script>
var a=1;
var b='2';
var c=a-b;
console.log(c);
</script>
结果没变,因为减法会对变量做隐式转换,只要能转成number类型,全部转成number类型再运算。
如果无法转换成number类型,将无法运算,返回结果NaN(not a number)。
*:乘法
<script>
var a=1;
var b='4';
var c=a*b;
console.log(c);
</script>
也是可以进行隐式转换的,不能转也返回NaN
除法/也一样,就不看了。
取余:%
<script>
var c=10%3;
console.log(c);
</script>
当被除数小于除数时取本身。
//取余知道了,那怎么取商?
var c=10/3;
console.log(c);
带一串余数,只想要商,这么整:
console.log(parseInt(c));
//这个它是不存在四舍五入的。
赋值运算
<script>
var a=1;
var b=2;
//ab值互换,借助中间变量
var c=a;
a=b;
b=c;
console.log('a的值是'+a);
console.log('b的值是'+b);
</script>
比较运算符
比较简单,没啥说的,==:判断值是否相等。
===:①判断数据类型是否相等,②值是否相等。(全等)
++自增 和 --自减
++自身加1,num++: num=num+1;
--自身减1,num--: num=num-1;
<script>
var num =10;
num++;
console.log(num);
</script>
//++在前,先运算再赋值
//++在后,先赋值再运算。