javaScript变量-数据类型-运算符-分支循环

1.介绍

概念:基于对象和事件驱动,并且具有相对安全性的解释型的客户端脚本语言

2.组成

ECMAScriptDOMBOM

3.引入方式
3.1.内嵌式
<script type="text/javascript">
	alert("hello world!")
</script>
3.2.外链式

在外部创建js文件,通过src引入

<script type="text/javascript" src="./js/jso1.js">

./ 表示当前项目路径 …/表示当前项目的上级路径

3.3.事件属性
<div onclick="alert('hello world!')">click</div>
3.4.注意
  • type是可选属性,可写也可不写
  • script标签引入通常写在head或者body结束标签前
  • 内嵌式只能被一个文件使用
  • 外链式可以被多个文件使用
  • 外链式引入不能再在script标签内写js代码,会被引入的js代码覆盖掉
4.输出方式
4.1.网页输出
<script type="text/javascript">
	document.write("hello world!")
</script>
4.2.弹框输出
<script type="text/javascript">
	alert("hello world!")
</script>
4.3.控制台输出
<script type="text/javascript">
	console.log("hello world")
</script>
5.变量

变量:计算机内存分配的一块区域,用来保存变化的数据

5.1.声明变量:
var  : 可以重复声明和赋值
let  :不能重复声明,可以再次赋值  es6
const:不能重复声明,不能再次赋值  es6
5.2.赋值
  • 不声明直接赋值
 		<script type="text/javascript">
            name = 'zs';
            age = '10';
            console.log(name+"--"+age);
        </script>
  • 声明后赋值
 		<script type="text/javascript">
            var name = 'zs';
            var age = '10';
            console.log(name+"--"+age);
        </script>
  • 同时声明多个变量
		 <script type="text/javascript">
            var name = 'zs',
            age = '10';
            console.log(name+"--"+age);
        </script>
  • 定义变量的区别

    • var声明的变量可以重复声明,可以再次赋值,值会被覆盖

      <script type="text/javascript">
              var name = 'zs';
              var name = 'ls';
              console.log(name); // ls
      </script>
      
    • let声明的变量不能再次声明,可以再次赋值

      <script type="text/javascript">
                  let name = 'zs';
                  //let name = 'ls'; //抛错: Identifier 'name' has already been declared
                  name = 'ls';
                  console.log(name); // ls
      </script>
      
    • const声明的变量不能再次声明,不能再次赋值

      <script type="text/javascript">
                  const name = 'zs';
                  //const name = 'ls'; //抛错: Identifier 'name' has already been declared
                  //name = 'ls'; //抛错:Assignment to constant variable.
                  console.log(name); // zs
      </script>
      
6.数据类型

可以使用关键字typeof来查看类型

<script type="text/javascript">
            console.log(typeof 1);//number
            console.log(typeof 0.1);//number
            console.log(typeof null);//object
            console.log(typeof true);//boolean
            console.log(typeof undefined);//undefined
            console.log(typeof Symbol());//symbol
            console.log(typeof 'hello');//string
</script>
6.1.基本数据类型
  • Number:数值类型(int: 整数;float:小数;NaN: not a number;Infinity:除数为0)
  • String:字符串,可以用“ ”或者''表示
  • Boolean:布尔值,true或者false
  • Undefined:未定义,一个变量已经声明,但是还未赋值
  • Null:空值,可以给一个变量赋以null来清除变量内容
  • Symbol:唯一
6.2.引用数据类型
  • Object:对象
7.类型转换

不同数据类型的变量之间运算,需要转换为同一类型!

7.1.强制转换
  • 转换为int,只有首字母是数字的才可以转换,其他的为NaN
		<script type="text/javascript">
            console.log(parseInt('1'));//1
            console.log(parseInt('1.111'));//1
            console.log(parseInt('1abc'));//1
            console.log(parseInt('0.1abc'));//0
            console.log(parseInt('abc520'));//NaN
            console.log(parseInt(null));//NaN
            console.log(parseInt(true));//NaN
            console.log(parseInt(undefined));//NaN
            console.log(parseInt('hello'));//NaN
        </script>
  • 转换为float,只有首字母是数字的才可以转换,其他的为NaN
		<script type="text/javascript">
            console.log(parseFloat('1'));//1
            console.log(parseFloat('1.111'));//1.111
            console.log(parseFloat('1abc'));//1
            console.log(parseFloat('0.1abc'));//0.1
            console.log(parseFloat('abc520'));//NaN
            console.log(parseFloat(null));//NaN
            console.log(parseFloat(true));//NaN
            console.log(parseFloat(undefined));//NaN
            console.log(parseFloat('hello'));//NaN
        </script>
  • 转换为Number,只有纯数字字符串的才可以转换,其他的为NaN,true–1,null–0
		<script type="text/javascript">
            console.log(Number('1'));//1
            console.log(Number('1.111'));//1.111
            console.log(Number('1abc'));//NaN
            console.log(Number('0.1abc'));//NaN
            console.log(Number('abc520'));//NaN
            console.log(Number(null));//0
            console.log(Number(true));//1
            console.log(Number(undefined));//NaN
            console.log(Number('hello'));//NaN
        </script>
  • 转为Boolean值,0,false,’’(空字符串),null,undefined, NaN为false,其他都为true
		<script type="text/javascript">
            console.log(Boolean('1'));//true
            console.log(Boolean(0));//false
            console.log(Boolean(''));//false
            console.log(Boolean('1abc'));//true
            console.log(Boolean('0.1abc'));//true
            console.log(Boolean('abc520'));//true
            console.log(Boolean(null));//false
            console.log(Boolean(true));//true
            console.log(Boolean(undefined));//false
            console.log(Boolean(NaN));//false
        </script>

7.2.隐式转换

	<script type="text/javascript">
            let a = '2',b = '3';
            let c = null;
            let d = NaN
            let e = undefined;
            let f = true;
            let g = "a";
            console.log(a-b) //-1
            console.log(a+b)//23 字符串的拼接
            console.log(a*c);//0 null--0
            console.log(a/e);//NaN
            console.log(a/d);//NaN
            console.log(a/f);//2 true--1
            console.log(a-g);//NaN
        </script>
8.运算符

① 算术运算符: + - * / % ++ –

② 比较运算符:== != > >= < <= =(全等于) !(不全等于)

③ 条件运算符:(expr1) ? (expr2) : (expr3)

④ 逻辑运算符:&&(与) ||(或) ! (非)

⑤ 字符串运算符:+

⑥ 赋值运算符: = += -= *= /= %=

8.1.算数运算符

取模运算:%,取余数,除不尽的取后面整数

		<script type="text/javascript">
            let a = '33';
            console.log(a%3);//0 
            console.log(a%5);//3
        </script>

a++:先参与运算,再自增1

++a:先自增1,再参与运算

 		<script type="text/javascript">
            let a = 1,b = 2;
            console.log(a++ + 1);//2
            console.log(a);//2
            console.log(++a +1);//4
            console.log(a);//3
        </script>
8.2.比较运算符

所有比较的结果都为Boolean值

==(不严格等于): 比较值的大小,不比较值的类型 (比较大小)

===(严格全等于): 既比较值的大小,又比较值的类型.(比较大小,类型)

!=(不等于):结果和==相反

!(不全等于):结果和=相反

		<script type="text/javascript">
            let a = '1',b = 1;
            console.log(a==b);//true
            console.log(a===b);//false
            console.log(a!=b);//false
            console.log(a!==b);//true
        </script>
8.3.逻辑运算符
  • a&&b(并且):逻辑与,当a和b都为true时,返回值为true,否则返回false
  • a||b(或者): 逻辑或,只要a与b中有一个为真,结果为真
  • !a(取反):逻辑非,当a为true时,返回值为false,否则返回true
		<script type="text/javascript">
            let a = '1',b = 0;
            console.log(a&b);//0 -- false
            console.log(a|b);//1 -- true
            console.log(a||b);//1 -- true
            console.log(a&&b);//0 --false
            console.log(!b);//true
        </script>
9.分支
9.1.单分支 if
if(条件A){
	代码块B //如果条件A成立(为真),才执行代码块B , 否则不执行
}

		<script type="text/javascript">
            let flag = true
            if(flag){
                console.log("hello")
            }
        </script>
9.2.双分支 if - else
	if( 条件A ){
		//条件A为真: 执行代码块B,并结束
	}else{
		//条件A为假: 执行代码块C,并结束
	} 

		<script type="text/javascript">
            let flag = true
            if(flag){
                console.log("hello")
            }
            else{
                console.log("hi")
            }
        </script>
9.3.多分支 if - else if
if(条件A){	
		//条件A为真: 执行代码块A,并结束
	}esle if(条件B){
		//条件B为真: 执行代码块B,并结束
	}esle if(条件C){
		//条件C为真: 执行代码块C,并结束
	}else{
		//以上条件都不成立: 执行代码块D
	}

let score = prompt("输入成绩", 0);

    //判断考试成绩
if (score >= 90) {

        console.log("国外旅游");

} else if (score >= 70 && score < 90) {

        console.log("国内旅游")

} else if (score >= 60 && score < 70) {

        console.log("省内旅游")

} else {

        console.log("家里蹲")

}

else可以省略

prompt:提示用户输入的对话框。

9.3.多分支 switch…case
switch(表达式/变量){
		case1:
		全等于值1,执行代码块A;
		break;//结束

		case2:
		全等于值2,执行代码块B;
		break;

		default: 
		以上都不等于,执行代码块N
		break;
	}

	<script type="text/javascript">
            let month = prompt("请输入数字",1)
            month = Number(month)
            switch (month){
                case 1:
                alert("春天")
                break;
                case 2:
                alert("夏天")
                break;
                case 3:
                alert("秋天")
                break;
                case 4:
                alert("冬天")
                break;
            }
        </script>
  • switch适用于对某个状态值的判断,可以与if - else if 互换
  • default可以省略,可以写在case之前或者之后
10.循环
for(初始化循环变量; 循环条件; 更新循环变量){
		循环体;
}
  1. 循环变量的初始值可以是任意值

  2. 更新循环变量: 步长可以是任意值 可加可减,更新循环变量表达式一定是赋值运算

  3. 循环条件为真 : 执行循环体

  4. 循环条件为假 : 结束循环

		<script type="text/javascript">
            for(let i = 0; i<10 ; i++){
                document.write("hello world!");
            }
        </script>
  1. 初始化循环变量: let i=0;

  2. 判断是否满足循环条件:i<10

  3. 不满足: 结束循环

  4. 满足: 执行循环体: document.write(“hello world!”);

  5. 更新循环变量: i++

  6. 回到第2步

10.1.死循环

循环条件表达式永远为真

		<script type="text/javascript">
            for(; ;){
                console.log("go on...")
            }
        </script>
10.2.双重嵌套
		<script type="text/javascript">
            for(let i = 0;i<4;i++){
                for(let i = 0;i<5;i++){
                    document.write("★");
                }
                document.write("<br>")//换行
            }
        </script>
10.3.终止循环
  • break 终止当前循环和后面所有循环
		<script type="text/javascript">
            for(let i = 1;i<=10;i++){
                if(i===5){
                    break;
                }
                console.log(i) //1,2,3,4
            }
        </script>
  • continue 终止当前循环,继续后面的循环
		<script type="text/javascript">
            for(let i = 1;i<=10;i++){
                if(i===5){
                   continue;
                }
                console.log(i) //1,2,3,4,6,7,8,9,10
            }
        </script>
  1. i的每个取值就是一次循环 === i从1取到10 所以有10次循环

  2. break : 终止了当前循环(i=5),还终止了后面所有循环(i=6-10)

  3. continue: 终止了当前循环(i=5), 继续后面的所有循环(i=6-10)

10.4.while 循环
while (条件)
{
    需要执行的代码
}
<script type="text/javascript">
	let i = 0;
	while(i<5){
	console.log("hello world:"+i);
	i++ ;
	}
</script>

只要变量i小于5,循环就会一直执行

10.5.do-while循环
do
{
    需要执行的代码
}
while (条件);
		<script type="text/javascript">
            let i=0;
            do{
                console.log("hello world"+i);
                i++;
            } 
            while(i<5)
        </script>

do结构体内优先执行,循环至少会执行一次,即使条件为 false 它也会执行一次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值