Js的理论
javascript语言是一种编程语言,可以向计算机发出指令,具有逻辑性和行为能力。简单的说,编写HTML是在一些标签让浏览器读取并显示,而编写javascript的体验就像是在和浏览器对话
Js的使用方法:
内部引用Js方法
在HTML页面中插入javascript,请使用<script>标签。
<script>和</script>之间的代码行包含了javascript。
<body>
<script>
// Js代码
</script>
</body>
外部引用Js方法
外部javascript文件的文件扩展名是.js
在<script>标签中的"src"属性中设置该.js文件。
脚本放置属于<head>或者是<body>中,放在<script>标签中的脚本运行效果完全一样。
<body>
<script src="./js/myScript.js"></script>
</body>
myScript.js为js文件的名字,后缀名为.js
输出方式:
使用window.alter()弹出警告框
<body>
<script>
// Js中的弹窗提示输出方式
alert("hello word!");
</script>
</body>
使用document.write()方法将内容写到HTML文档当中
在页面完全加载后,如需显示在页面上,加载的内容会覆盖之前的内容。
<body>
<script>
// Js中网页输出方式
document.write("hello word!");
</script>
</body>
使用console.log()写入到浏览器中的控制台
<body>
<script>
// Js中控制台(f12)输出方式
console.log("hello word!");
</script>
</body>
变量
声明变量:变量名需要遵循一定的命名规范,通常称之为"声明"变量,声明的变量即为空置,而非为0,所以我需要给变量进行赋值,给变量一个值
- 变量必须以字母开头
- 变量也能以$和_符号开头(不推荐)
- 变量名称对大小写敏感(g和Y是不同的变量)
基础数据类型
数值/数字(Number)
不管是整数还是小数,都是数值类型
<body>
<script>
//定义数字类型变量,数字类型直接赋值数字
var num = 123;
</script>
</body>
变量赋值:"="
在编程语言中不是等于的意思,而是赋值的意思,也就是把"="右侧的数据赋值给左侧的变量;
简单的说就是把"="右侧的值装到左侧的容器里
<body>
<script>
// 使用var定义变量,变量名为num,并给num赋值为23;
var num = 23;
</script>
</body>
字符串(String)
双引号或单引号中的值都是字符串
<body>
<script>
// 定义字符串类型变量,字符串类型,需要写在单引号或双引号之内
var str = "字符串";
</script>
</body>
布尔(Boolean)
布尔(逻辑)只能有两个值:true或false,代表真或假
<body>
<script>
// 定义布尔值true/false,布尔值为逻辑,只true和false两个值
var boolean = true;
</script>
</body>
空(null)
空值只有null
<body>
<script>
// 定义一个空值
var nu = null;
</script>
</body>
未定义(undefined)
undefined这个值表示变量不含有值,不赋值时默认为undefined
<body>
<script>
// 定义一个未定义值,未定义默认值为undefined
var nu;
</script>
</body>
基本运算符与四则运算符
=赋值
字符串赋值:
var str = "hello" + "word"; //输出 str:"hellword"
四则运算赋值:
var num = 5 + 2; //输出:7
+
字符串拼接:
var str = "hello" + "word"; //输出:hello word
加法:
var num = 5 + 7; //输出num=12
-减法
var num = 5 - 2;//输出:num=3
*乘法
var num = 5 * 2;//输出:num=10
/除法
var num = 5 / 2; // 输出num:2.5
%取余(余数)
var num = 5 % 2; // 输出num:1
++自加一
var num = 5++; //输出num:5 先输出在计算
var num1 = ++5; //输出num:6 先计算在输出
--自减一
var num = 5--; //输出num:5 先输出在计算
var num1 = --5; //输出num:4 先计算在输出
比较运算符
比较运算符的作用和返回值类型,如果比较成立,返回true,如果不成立返回false
>大于
console.log(10>20);//返回false
<小于
console.log(10<20);//返回true
==判断相等
console.log(10==20);//返回false
!=判断不恒等
console.log(10!=20);//返回true
===判断恒等
相等和恒等不同:当两个值的数据类型不相同的时候,他们可能相等,但不会恒等
console.log(10=="10");// 返回true
console.log(20==="20");// 返回false
!==判断不恒等
相等和恒等不同:当两个值的数据类型不同的时候,他们可能相等,但不会恒等
console.log(10!="10");// 返回false
console.log(20!=="20");// 返回true
逻辑运算符
&&逻辑与
var x = 10;
var y = 20;
console.log(x>30 && y>30);
//第一个表达式为false值,返回false
console.log(x<30 && y>30);
//第一个表达式为true值,第二个表达式为false值,返回false
console.log(x<30 && y<30);
//第一个表达式为true值,第二个表达式为true值,返回true
||逻辑或
var x = 10;
var y = 20;
console.log(x>30 || y>30);
// 第一个表达式为false,第二个表达式为false,则返回false
console.log(x<30 || y>30);
// 第一个表达式为true,则直接返回true
console.log(x>30 || y<30);
// 第一个表达式为false,第二个表达式为true,则返回true
!逻辑非
var x = true;
var y = false;
console.log(!x);//非真为假
console.log(!y);//非假为真
赋值运算符
=赋值
字符串赋值:
var str = "hello" + "word";//输出str:"hello word"
四则运算赋值:
var num = 5 + 2; //输出num:7
+=加并赋值
x+=y 同 x=x+y
-=减并赋值
x-=y 同 x=x-y
*=乘并赋值
x*=y 同 x=x*y
/=除并赋值
x/=y 同 x=x/y
%=取于并赋值
x%=y 同 x=x%y
执行顺序有三种:按顺序执行、按条件执行、按循环执行
条件执行
if,else,else if语句
if....
if(判断条件)
{
当条件为true时执行的代码
}
只有当指定条件为true时,从语句才会执行代码
// 定义变量num
var num = 5;
// if条件语句
if(num<=10){
document.write(num)
}
if...else...
if(判断条件)
{
当条件为true时执行的代码
}
else
{
当条件不为true时执行的代码
}
在条件为true的时执行代码,在条件为false时执行其他代码
案例
//定义变量num
var num = 5;
//if条件语句
//满足条件进入if语句
if(num <= 4){
document.write(num);
}
//不满足条件进入else语句
else{
document.write("我是else语句");
}
if...else,else...if
if(判断条件1){
当条件1为true时执行的代码
}
else if(判断条件2){
当条件2为true时执行的代码
}
else{
当条件1和条件2都不为true时执行的代码
}
该语句来选择多个代码块时执行的代码
案例
// 定义变量num
var num = 5;
// if条件语句
// 满足条件进入
if(num <= 4){
document.write(num);
}
// 满足else if中的条件进入
else if(num <=10 && num>14){
document.write("我是else if中的值是" + num)
}
// 不满足条件进入else语句
else{
document.write("我是else语句");
}
switch语句
switch....case
基于不同的条件来执行不同的动作,选择要执行的多个代码块之一,
工作原理:首先设置表达式n(通常是一个变量),随后表达的值会与结构中的每一个case的值作比较,如果存在匹配,则与该case关联的代码块会被执行。请使用break来阻止代码自动地,向下一个case运行。
基本语法
switch(n)
{
case 1:
执行代码块1
break;
case 2:
执行代码块2
break;
default:
与case1和case2不同时执行的代码
}
案例
// 定义变量num,用于判断使用
var num = 4;
// switch判断语句案例
switch(num){
case 1:
document.write("num的值为1");
break;
case 2:
document.write("num的值为2");
break;
default:
document.write("num的值为" + num);
}
if和switch语句的区别
if语句:
表达式的结果是boolean类型,常用于区间判断
switch语句:
表达式类型不能是boolean类型,可以是bgce,int,char,string,枚举
选择语句的选择:
能用switch语句实现的就一定可以用if实现,但是反之不一定,如果是区间范围就采用if,如果是等值判断就使用switch
循环语句
可以让一部分代码重复执行,并获得不同的结果,所以我们使用了循环。
javascript中的循环语句有for语句和while语句
for循环
基本语法
for(初始值,布尔值,计数器){
被执行的代码块
}
- 初始值:(被执行代码块)开始之前所执行的代码
- 布尔值:定义运行(循环)的条件,用于判断使用
- 在循环:(被执行代码块)已经执行,后再进行执行
- 被执行代码块:进行判断后满足for循环的条件所执行的重复代码
注:for循环后的小括号内包含(初始值,布尔值,计时器),大括号包内包含{被执行代码}
案例
// for循环语句
// var i=1 定义变量i的初始值为1,自定义,通常设置0或1
// i<=5布尔值,用于判断i值
// i++每次循环结束后进行自加1,用于计算
for(var i=1;i<=5;i++){
// 语句块
// 页面每行输出 每次循环中i的值
document.write(i+"</br>")
}
注意:for循环中,初始值通常定义为0,进行初始化定义为0,是因为要跟数组的标识所对应,数组的标识从0开始
while循环
只要指定条件为true,循环就可以一直执行代码块。
while(条件)
{
需要执行的代码
}
案例
<script>
// 定义一个变量为num
var num = 1;
// while循环
// 判断条件满足num<5时,执行以下操作
while(num<5){
document.write(num);
num++;
}
</script>
for循环与while循环的区别
从应用场景考虑:
for循环适用于已知循环次数,while循环适用于未知循环次数
那么在已知循环次数时,最好选择for循环,
如果循环次数是未知的,最好选择while循环。
从内存角度考虑:
局部变量在全栈内存中存在,当for循环语句结束,那么变量会及时被gc(垃圾回收器)及时的释放掉,不浪费空间;
如果使用循环之后还想去访问循环语句中控制变量,使用while循环。
1.for循环
for循环,就是遍历某一对象,通俗说根据循环次数限制做多少次重复操作
2.while循环
while循环,是当满足什么条件的时候,才做某种操作
如:while(count<3):意思就是当count小于3时,才做下面操作
continue与break的区别
continue:
continue可以结束本次循环,直接进入下一次循环
<script>
// continue的作用
for(var i=0;i<=5;i++){
document.write("我是continue之前的值"+i+"</br>");
continue;
document.write("我是continue之后的值"+i+"</br>");
}
</script>
break:
break:当代码执行到break时,直接结束本次循环,不在进入下一次循环
<script>
// break的作用
for(var i=0;i<=5;i++){
document.write("我是break之前的值"+i+"</br>");
break;
document.write("我是break之后的值"+i+"</br>");
}
</script>