JavaScript基础 EcmaScript/04-02条件语句补充,初识引用值,typeof,类型转换(下)

JavaScript基础 EcmaScript/04-02-条件语句补充,初识引用值,typeof,类型转换(下)

本节课知识小结点:
条件判断语句 switch case
终止循环 break ; 必须放在循环里,放在循环外就会报错!!!**
终止本次循环,进行下次循环!continue

条件语句补充

1、条件判断语句 switch case
switch是条件,会和case里的值去比对,条件判断语句,符合哪条就执行哪条,下边的不看……

var n = 3;
switch(true) {
	case "a":
		console.log('a')
		break;
	case 2:
		console.log('b')
		break;
	case true:
		console.log('c')
		break;
}

1、里面的值可以不统一,
2、switch case执行语句及其不负责任,满足第一个,也会打印下边的,
3、消除不负责任,break 终止执行,
4、<>处理不了,=可以

<script>
    var date = window.prompt('输入周几');
    switch(date) {
        case "monday":
            console.log('working');
            break;
        case "tuesday":
            console.log('working');
            break;
        case "wednesday":
            console.log('working');
            break;
        case "thursday":
            console.log('working');
            break;
        case "friday":
            console.log('working');
            break;
        case "星期六":
            console.log('relaxing');
            break;
        case "星期天":
            console.log('relaxing');
            break;
    }
</script>

代码耦合程度非常高,重复太多,简化代码,自然下漏

<script>
    var date = window.prompt('输入周几');
    switch(date) {
        case "monday":
        case "tuesday":
        case "wednesday":
        case "thursday":
        case "friday":
            console.log('working');
            break;
        case "星期六":
        case "星期天":
            console.log('relaxing');
            break;
    }
</script>

2、终止循环 break
switch case也是循环语句,另两种是for循环和while循环

<script type="text/html">
    var i = 0;
    while(1) {
        i ++;
        console.log(i);
        if(i > 100){
            break;
        }
    }
</script>

break; 必须放在循环里,放在循环外就会报错!!!

<script>
        var i = 0;
        if(1 > 2){
            break;
        }
</script>

加到100终止程序……

for也可以用break终止
<script type="text/html">
    var i = 0;
    var sum = 0;
    for(var i = 0; i < 100; i ++){
        sum += i;
        console.log(i);
        if(sum > 100) {
            break;
        }
    }
</script>

3、终止本次循环,进行下次循环!continue
很有意思.有点继续的语法…… 用得不多!

<script>
    for(var i = 0; i < 100; i ++){
        if(i % 7 == 0 || i % 10 == 7){
            continue;
        }
        console.log(i);
    }
</script>

初识引用值

数组 估计有两节课专课数组……
数组-是存放很的东西的盒子

<script>
var arr = [1,2,3,45,5,7,"abc",undefined];
   console.log(arr[0])
    //打印数组第0位 取
arr[0] = 3;
//写入
console.log(arr[0])
    //把第0位赋值为3  写入
console.log(arr.length);
//arr.length 数组长度
    //打印数组的长度
for(var i = 0; i < arr.length; i ++) {
    console.log(arr[i]);
for(var i = 0; i < arr.length; i ++) {
    arr[i] += 1;
    console.log(arr[i]);
    //每一位加1赋给自身
}
</script>

对象估计有三节课专讲对象…………
面向对象的编程方式 例 对象定义的基本方式如样

<script>
var deng = {
	//key 属性名	    value 属性值  “值是重点”
	lastName:"Deng",
	age	: 40,
	sex: undefined,
	wife: "tangli",
	father: "dengFu",
	son: "xiaodeng",
	handsome: false,	
}
consonle.log(deng.lastName);
//取值方法:点儿,有点像的的意思
deng.lastName = “wang”
//赋值方式
</script>

编程形式的区别
解释性语言……编译性语言

面向过程……面向对象(从逻辑上的分法)
早期语言 如 C……(Jvav继承多态 封装) 对象调用方法
第一步,第二步

弱数据类型……强数据类型
脚本语言……非脚本语言

Javascript 既面向对象也面向过程
开始是面向过程的 后来倾向面向对象 现在又回归面向过程,

typeof操作符

typeof 转换成六种数据类型 作用于区分数据类型
number、string、boolean、……undefined、object、function(函数、方法)
前三个是最基本的值……

<script>
typeof() //括号里放数据
var num = 123;
console.log(typeof(num));   //反回number
//打印出
var num = "123";  //反回string
var num = "true"; //反回string
var num = true; //反回boolean
var num = 【】;  //反回object 不单指对象,泛指一种引用值
var num = null	
null原始值是1 反回object 浏览器遗留问题 null 最早作为代替空对象,给对象占位
var num = nudefined //反回"nudefined"
var num = function(){} //反回"function"
typeof()   typeof  num
//后边加括号…… 后边空格隔开  最加好括号
</script>

显示类型转换和隐示类型转换

<script>
var num = 1 + 1 ;// 2
var num = 1 + "1"; //2 number
consonle.log(typeof(num) + " : " + num);
var num = 1 + " 1 " ;// 0  number
var num = " 2 " -  " 1 " ;// 1  number
//javascript 独有的
</script>

显示类型转换
01、Number(mix)……括号里的东西转换成数字

var num = number("123"); 括号里的东西转换成数字  操作完后反回给num 
console.log(typeof(num) + " :" + num);  //number 123
var num = number(boolean); //number 1
var num = number(false); //number 0
number(unll); //number 0
number(undefined); //number NaN 最特殊的一个 
number(" a "); //number NaN  看起来不是数字的,都转不了数字
number(-123); //number -123
number("123abc"); //number NaN
</script>

02、parseInt(string,radix) radix=基底……括号里的东西转换成整数

A 转成整形
var num = parseInt("123abc"); 括号里的东西转换成数字  操作完后反回给num 
parseInt("123abc") //123 从数字位看到非数字位截止
parseInt(true) //NaN 不关注其他的,只看能不能转成整数
parseInt(nudefined、null)//NaN
parseInt(123.3)//123 后边的直接去
parseInt(123.9)//123 后边的直接去

B 转换成目标进制
parseInt(string,radix)16进制为基底,把它转换为10进制 radix=基底   取值 2-36 0
var demo = " 10 ";
var num = parseInt(demo,16); //16   以16进制为基底,把它转换为10进制
var demo = " b ";
var num = parseInt(demo,16); //11
var demo = " 100px ";
var num = parseInt(demo,16); //100
</script>

03、parseFloat(string) 和parseInt 及其相似,没有parseInt那么复杂
将其转换成浮点类型的,正常数 ()
100.2……//100.2
100.2.3……// 100.2
100.2abc……//100.2

04、toString(radix)

<script>
A
var demo = 123; 
var num = demo.toString();
console.log(typeof(num) + " : " + num);
重要,有两个不能用toString 
01\undefined 用会报错,没有这个属性
02\null 也会抱错

B toString(radix) 以十进制为基底,转换成目标进制
var demo = 10;   //12
20  //16
var num = demo.toString(8);
console.log(typeof(num) + " : " + num); //12

问,将一个二进制的数转为16进制
parseInt  	 toString
	2-----10-----16
var num = 10101010;
var test = parseInt(num, 2);
console.log(test.toString(16));

</script>

05、string(mix)
致力于把其转换成字符串
undefined //“undefined”
06、Boolean
致力于把其转换成布尔值
“” //false

隐式类型转换 (隐式都是调用显示的方法)
01、inNaN()

isNaNa() 判断是不是NaN 并把结果返回
先把()里的值用number转换,转换完了再和NaN比对
console.log(isNaN(NaN));
isNaNa(123); //false
isNaNa("123"); //false
isNaNa("abc"); //true
isNaNa(null); //false
isNaNa(undefined); //true

02、++ /-- +/-(一元正负运算)

var a = "123";
a ++; Number("123")  //124 number
+"abc";  Number("abc") NaN number
-a  Number("abc")也是调用number

03、+ ( 隐式调用string 只要+号一侧有"" 就会调用string)
04、- * / % (他们隐式也是调用的number)

1* 1 = 1 number,
"a" * 1 = NaN number,

05、&& || !
06、< > <= >=

1 > " 2 " // false boolean
"3" > "2" 比asq码
"3" > 2  // true 

07、== 等于 != 不等于

1 == "1"  //true bolean
1 == true  //true bolean

几个特别的例子

1 > 2  //false
false > true //false
2 > 1 > 3 //false
2 > 3 < 1 // true
10 > 100 > 0 // false
100 > 10 > 0 //true
undefined > 0 //false
undefined < 0 //false
undefined == 0 //false
null > 0 //false
null < 0 //false
null == 0 // false
undefined == unll  //true
NaN == NaN 这个最特殊,非数自己不等于自己,也不等于任何东东
===  绝对等于,!==绝对不等于,这种符号相比,不发生类型转换
NaN === NaN //false
var a = 123; 变量声明并赋值
a = 123 未经申明的变量就使用,会报错,
console.log(typeof(a)); 只有这种没声明的变量就使用,不报错//undefined
console.log(typeof(typeof(a)));//string  typeof(a) 先返回"unddfined" 是字符串的
typeof 返回的种值,都是字符串的""

作业小练习

alert(typeof(a)); // "unddfined"
alert(typeof((undefined)); //"unddfined"
alert(typeof(NaN)); //number
alert(typeof(unll)); //object
var a = "123ABC"; 
alert(typeof(+a)); //number
alert(typeof(!!a); //boolean
alert(typeof(a + "")); // string
alert(1 == "1"); // true
alert (NaN == NaN); // false
alert (NaN ==undefined); // false
alert("11" + 11); //"1111"
alert(1 === "1"); //false
alert(parseint("123abc")); //123
var num = 123123.345785; 
alert(num.toFixed(3)); //123123.346
typeof(typeof(a)); // string
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值