JS第三次笔记

一、JS变量和数据类型

二、JS的运算符和条件判断语句


一、JS变量和数据类型

1、数据类型

JS常用的数据类型主要包括6种:
1、String
2、undefined
3、boolean
4、null
5、number
6、object

其中,最后两种又分别囊括了具体的几种变量类型
number:

number(整数支持各种进制)object
包括整形、浮点型object、数组、类

不过需要注意的是,JS是一门 “弱类型”语言。所谓的弱类型语言就是:

弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。弱类型语言包括vb
、PHP、javascript等语言。
在这里插入图片描述

弱类型语言通常在声明变量的时候不会指定具体的变量类型,通常的格式是:声明变量关键字+变量名
例如:var name=“五条悟”;
var是变量声明的关键字,name是变量名。通常在声明变量的时候就赋初值。
若想查看变量的数据类型,可以通过typeof()来查看
例如:
var num=“0”;
document.write(typeof(num));

结果为:String
这里需要注意一个特殊情况:当var num=null 时,typeof()的结果会输出object。

2、类型转换(与java相似)

String→number类型
字符串类型转为number类型通常使用 parseInt() 或者 parseFloat()
举例:
parseInt('123.4')=123 parseInt('347s21')=347 parseFloat('123.44.56')=123.44 parseFloat('s143')=NaN
通过上面的例子我们可以发现,当字符串中出现不能转换为数字的值时,则只会取前面的数字部分。若第一个字符都不是数值,那么直接会输出 “NaN”

number类型→String类型
主要有两种方式:
1、强转:String()
2、toString()
var num=4;
document.write(String(num));
var num=5.3;
document.write(num.toString());
两种方法无明显区别。只是在声明变量而没有赋初值的时候toString()会报错,而String()会输出undefined
在这里插入图片描述
还有比较特殊就是boolean强转的时候:

Boolean()=false;   
Boolean(0)=false;  
Boolean(null)=false;  
Boolean("")=false; 
Boolean(undefined)=false;  
Boolean(false)=false;  
Boolean(NaN)=false;

此上7种情况均为false,除此之外用boolean强转的都为true。因为非空,非0,非空字符串或对象经过boolean()强转都默认为true

二、运算符及判断语句

1、运算符

在这里插入图片描述
一些最常见的运算符就不再做过多的赘述了,这里出现了“===”和“!==”两个新的运算符。作用是比较变量值和类型是否相等。这与java里的“==(比较地址)”和“equals()(比较值)”类似。

这里还要讨论一下JS中的特殊的情况。当相加的两个数字的值为:数字、布尔值、null时,会先把布尔值和null转化为数字再相加。
例如:
var a = null, b = true; console.log(a + b)=1;
这里,a=null转换为数字为0,b=true转换为数字为1。所以相加=1。

2、条件判断语句

主要的两种条件判断语句
1、if()…else if()…else
2、switch()
结构如下:

//if...else条件判断
if (条件表达式) {  
    //js代码 
} else if(条件表达式){  
    //js代码  
}else{
	//js代码
}

//switch条件判断
switch(表达式){  
	case1:  
    	//JS语句1  
    	break;  
    case2:  
    	//JS语句2  
   		break;  
   default:  
    	//JS语句3  
    	break;  
}

这里直接上一个例子
在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			var year=parseInt(prompt("请输入一个年份:"));
			var month=parseInt(prompt("请输入一个月份:"));
			if(isNaN(year)||isNaN(month)){
				alert("请输入数字");
			}else if (year<0 || month>12 || month<1) {
				alert("超出范围");
			} else{
				switch(month){
					case 1:
					case 3:
					case 5:
					case 7:
					case 8:
					case 10:
					case 12:alert("该月共有31天");break;
					case 4:
					case 6:
					case 9:
					case 11:alert("该月共有30天");break;
					case 2:
						if((year%4==0 && year%100!=0)||(year%400==0)){
							alert("该月共有29天");break;
						}else{
							alert("该月共有28天");break;
						}
				}
			}
		</script>
	</body>
</html>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值