声明变量的两种方式
- var
- function
- 是专门用来声明函数
function fn(){}
其中fn是函数的名字,后面一定要跟().函数也叫方法,只有函数后面才加() - 函数的作用:当代码需要重新利用时,用函数封装,执行函数就能达到效果。{}里放的是业务逻辑,{}之间可以换行,但是()不要换行
- 函数声明 权重高,就算函数使用在声明之前,也能执行。
function fn(){console.log( "大家好");}
- 函数表达式 执行必须先声明再使用
var fn = function(){}
- 函数的使用
函数名加()fn();函数自执行
事件触发函数
document.onclick = fn;
此时千万不要加等号,不然就是自执行。 - this代表调用函数的对象 全局作用域的this默认指向window对象
模板字符串
模板字符串使用反引号 () 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符。
var name = "李四";
var age = 19;
var height = "180";
var str = "我的名字叫"+name+"今年"+age+"岁了"+"身高"+height;
//再写大段字符串的时候会用到反引号
var str = `我的名字叫${name},今年${age}岁了,身高${height}`;
`我的名字叫${name},今年${age+1}岁了,身高${height}`;
${}里面可以放变量,可以进行运算
##比较运算
在js中凡是运算,都会有返回值,返回值是true或者false,即布尔值
> < == !=(不等于) >=(大于或者等于) <= ===(全等于) !==(不全等于)
- 在js中,=是赋值操作运算符 返回结果是等号右边的玩意儿
var a =4,
var d ="4";
console.log(a==b);
结果是true
- 在比较运算的时候,如果判断两个变量的值是否相等,我们采用会有一个数据类型的隐式转换,如果想判断两个是不是完全一样用=,=的执行效率要高于,因为后者需要进行数据类型的转换
- js是一种弱类型语言,数据类型会相互转换
- 小数运算不能作为运算判断,在js中部分小数点,console.log(4.0==4)结果是true;
if 语句
if(条件){
条件正确的执行代码
}else{
否则执行的代码
}
在if里面也存在隐式类型的转换,比如if(document.grtElementById("box")){alert("hello");}
结果是true,条件如果不是布尔值,而是一个对象,如果这个对象真实存在,那么就是true。
if("flase"){
alert("hello");
}
也会有弹窗,因为里面是字符串 在什么情况下会判断为假
- false
- 空字符串
- 0
- null 空指针
- undefined
- NaN 不是数的数
三目运算
- 具有一个条件
- 具有一个为真的结果
- 具有一个为假的结果 条件?真语句:假语句
<div title="lisi" id="box"></div>
var oBox = document.getElementById("box");
if(oBox.title == "zhaosi"){
obox.title = "lisi";
}else{
obox.title = "zhaosi";
}
obox.title == "zhaosi"?obox.title="lisi":obox.title="zhaosi";
obox.title = obox.title == "zhaosi"?"lisi":"zhaosi";
一些很长的判断语句,不要使用三目运算
swith
if的判断条件是多个 确定的值相比较的时候 我们可以用switch
var a = 1;
if(a===1){
console.log(1);
}else if(a===2){
console.log(2);
}else if(a===3){
console.log(3);
}else if(a===4){
console.log(4);
}else if(a===5){
console.log(5);
}else{
console.log("其他");
}
switch(a){
case 1:
console.log(1);
break;
case 2:
console.log(1);
break;
case 3:
console.log(3);
break;
}
千万不要忘记给我们的每个case添加一个break 表示的是退出我们的循环
图片切换效果
bool=!bool;
取反