目录
一、数据类型转换(强制/显式转换)
查看数据类型:
typeof();
在上一节中我们主要介绍了算术运算的隐式转换,在这一节中主要介绍一下显式转换也就是强制转换。隐式转换的结果可能不是我们想要的,所以我们可以手动调用某些方法进行数据类型的转换再进行运算 。
1、转为字符串
var str = x.tostring(); //x不能是undefined和null,因为undefined和null不能进行使用和操作
2、转数字
① 从左向右一次读取每个字符进行转换,碰到非数字字符就停止,而且不认识小数点,如果一开始就碰到了不认识的字符,结构为NaN。
var num = parseInt(str/num);
②几乎和parserInt一样,但认识小数点
var num = parseFloat(str/num);
③可以是任何类型,相当于隐式转换(不推荐使用)
Number();
二、函数
1、什么是函数
函数也称为方法,需要预定义后,可以反复使用的代码段。
2、创建并调用函数
第一步:创建
function 函数名(){
若干代码段;
}
第二步:调用
①直接再js里面写函数名()
②绑定再页面的元素上,让用户来触发,触发一次执行一次
<button onclick = "函数名();"></button>
3、什么时候使用函数?
①打开页面不希望立刻执行;
②希望用户/程序员来触发;
③希望能够被反复使用;
④本身就是一段独立的功能体;
⑤以后要尽量的将每个功能封装为一个函数,函数中的变量会自动释放。
4、带有参数的函数
①创建带有参数的函数
形参(形式参数):就是一个变量名,只不过不需要var,并且没有保存真正的值
function 函数名(形参1,...){
函数体;
}
②调用带有参数的函数
实参(实际参数):这个变量名保存值,一个函数可以执行相似的操作
函数名(实参1,...);
tip:带参数的函数,在调用时,传入的实参的顺序和个数都要一一和形参对应上。
总结:
1、如果你的函数体是固定不变的,则不需要使用带参数的函数。
2、如果你的函数体希望根据传入的实参的不同,操作也不同,则需要使用在参数的函数。
三、分支结构
1、代码中流程控制语句
①顺序结构(默认结构,代码从上向下一步一步执行)
②分支/选择结构(根据条件,选择一部分代码去执行)
③循环结构(根据条件,判断是否需要再一次重复的执行某一些代码)
2、比较运算符
> < >= <= == !=
作用:在比较/判断条件中出现
结果:一定是一个布尔值(也具有隐式转换)
3、if结构
if(条件1){
操作1;
}else if(条件2){
操作2;
}else{
操作3;
}
tips:
①else if不限次数;
②最后的else可以省略,但是如果条件都不满足则什么都不执行(不推荐);
③分支结构只要满足一个就不会选择另一个。
四、逻辑运算符
1、&&与逻辑
只有全部条件都满足,最后结果才为true;只要有一个条件为false,结果为false
2、||或逻辑
只有全部条件都不满足,最后结果才为false;只要有一个条件为true,结果就为true
3、!非逻辑
颠倒布尔值,!true = false