JS基础-2
1.常量
声明后必须赋值,不允许重新赋值
const userName='root';
练习:声明常量保存圆周率,声明变量保存半径,分别计算圆的周长和面积并打印出来
const pi=3.14;
var r=5;
var l=2*pi*r;
var s=pi*r*r;
console.log(l,s);
2.数据类型
分为原始类型和引用类型
原始类型
原始类型分为数值型、字符串型、布尔型、未定义型、空。
引用类型是对象,后边讲到】
(1)数值型
整数
十进制:1 2 3 4 5 6 7 8 9 10
八进制:1 2 3 4 5 6 7 10 11 12【以零开头的数字】
十六进制:1 2 … 8 9 a ~ f 10【以0x开头的数字,af代表1015,不区分大小写】
浮点型
var n4=314.15
var n5=3.1415E+2;
var n6=3.1415e-1;
console.log(n4,n5,n6);
typeof:检测数据类型 |
---|
‘number’/‘string’/‘boolean’/‘undefined’/‘object’ |
console.log(typeof n4);
(2)字符串型
被引号所包含的数据,不区分单双引号
var s1='2';
var s2='s1';
console.log(s1,typeof s1);
console.log(s2,typeof s2);
查看任意一个字符的Unicode码
console.log('a'.charCodeAt());
(3)布尔型
只有两个值,分别是==true和false==,表示真和假
var b1=true;
var b2=false;
console.log(b1,typeof b1);
console.log(b2,typeof b2);
条件的结果会是布尔型,还可以用于保存状态,例如是否登录,是否注册,……
var b3=3>1;
console.log(b3);
(4)未定义型
只有一个值为undefined
声明了变量未赋值则为undefined
var c1;
var c2=undefined;
console.log(c1,c2);
(5)空
只有一个值为null,常和引用类型一起使用
3.数据类型转换
(1)隐式转换
程序运行过程中自动产生的转换
(1)数值+字符串 //数值会转为字符串
var n1=2+'3';
console.log(n1,typeof n1);
(2)数值+布尔型 //布尔型转为数值 true-1 false-0
var n2=2+true;
console.log(n2,typeof n2);
(3)字符串+布尔型 //布尔型转换为字符串
var n3='3'+true;
console.log(n3,type n3);
练习:查看以下的程序运行结果
var a=1,b=true,c='tedu';
console.log(a+b+c);
console.log(b+c+a);
console.log(c+a+b);
练习:假设从后端获取到了一个员工的编号,姓名:打印出一下格式:员工编号:xx姓名:xx
var eid='12';
var ename='张小腾';
console.log('员工编号'+eid+' 姓名'+ename);
JS中’+'的作用
-
加法运算
-
执行字符串之间的拼接
NaN(Not a Number) 不是一个数字,在将数据转化为数值型的时候,没有成功返回的结果。
NaN和任何数字执行加减乘除等运算结果还是NaN.
结论:隐式转换为数值自动调用Number函数
(2)强制转换
强制转为数值型
var o2=Number('5'); //5
var o1=Number('5a'); //NaN
var o3=Number(true); //1
var o4=Number(undefined); //NaN
var o5=Number(null); //0
强制转为整型
parseInt()
var p1=parseInt(1.9); //1
var p2=parseInt('3.14'); //3
var p3=parseInt('3.14a'); //3
var p4=parseInt('a3.14'); //NaN
var p5=parseInt(true); //NaN
var p6=parseInt(undefined); //NaN
var p7=parseInt(null); //NaN
用于将字符串和小数转为整形,其他转换都是NaN
强制转为浮点型
parseFloat()
用于将字符串转为浮点型
var f1=parseFloat('5.18'); //5.18
var f2=parseFloat('4.7a'); //4.7
var f3=parseFloat('a4.7'); //NaN
var f4=parseFloat('3b'); //3
强制将数值和布尔型转为字符串
var num=5;
//将转换后得到的字符串保存到变量str中
var str=num.toString();
4.运算符
表达式:由数据或者由运算符连接的操作数据组成的形式
运算符分为算术运算符、比较运算符、逻辑运算符、位运算符、赋值运算符、三目运算符
(1)算术运算符
(+ )、(-)、( *)、( /)、(++)、(- -)、(%)
‘%‘ 取余
‘++’ 自增,在原来基础上加1
‘- -’ 自减,在原来基础上减1
var a=1;
var b=a++; //先把a的值赋给b,然后a再执行自增
var c=2;
var d=++c; //先让c的值执行自增,然后将自增的结果赋给d
练习:查看以下程序的运行成果
var num=8;
var num1=num--;
var num2=--num;
console.log(num1+num2); //15
console.log(num); //6
(2)比较运算符
(<)、(>)、(<=)、(>=)、(==)、(!=)、(= = =)、(!= =)
= = 等于,比较值是否相同
= = = 全等于,先比较类型,再比较值(推荐用法)
3>’10‘ //false 数字和字符串比较会隐式转换为数值
‘3’>‘10’ //true 两个字符串比较i,比较的是Unicode码
’3‘->59 ‘1’->49
3>‘10a’ //false
3<‘10a’ //false
3==‘10a’ //false
NaN和任何值进行比较都是false
面试题
正负,隐式转换
console.log(5+ +'3');
自增和自减,隐式转换为数值
var a='2';
a++; //2+1
console.log(a); //3
(3)逻辑运算符
&& :并且、逻辑与,关联的两个条件都是true,结果是true,否则是false
|| :或者、逻辑或,关联的两个条件有一个为true,结果是true,否则false
! :逻辑非、取反
短路逻辑
&& 当第一个条件为false,不再执行第二个条件
|| 当第一个条件为true,不再执行第二个条件
【短路逻辑无需关注整体上是true还是false,重点是看第二部分有没有执行】
小编第一次在csdn上发表有关文章,如果有问题可以私信我,有问题也可以一起讨论。而且小编也会不定时更新的哦!!
小编寄语:希望大家多多努力,创造更好的自己
侵删