数据转换和运算符和结构

编程入门 行业动态 更新时间:2024-10-23 11:26:54

数据转换和<a href=https://www.elefans.com/category/jswz/34/1771114.html style=运算符和结构"/>

数据转换和运算符和结构

思维导图


数据类型转换

1.其他数据类型转化成数值类型

  1. Number()==>把变量看作一个整体 如果其中有一个不是数字,则返回NaN,唯一一个可以转化布尔类型的 true-》1 false-》0
  2. parseInt()==>把变量分成一个一个的 从左向右 一个一个的转 直到遇到不能转的 就停止 输出前面转好的,如果全都不能转,则直接输出NaN,如果第一个就不能转,直接输出NaN,遇到小数点,停止,布尔类型的 true-》NaN false-》NaN
  3. parseFloat()==>把变量分成一个一个的 从左向右 一个一个的转 直到遇到不能转的 就停止 输出前面转好的,如果全都不能转,则直接输出NaN,如果第一个就不能转,直接输出NaN,布尔类型的 true-》NaN false-》NaN
  4. 除+之外的运算符 - * /js 隐式转 默认使用number方法 整体转 遇到不能转的则会输出nan
  5. 输出nan的原因是,转为数值类型,而转化不成功 转的是一个非数值
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// 数据类型的转换// 1.Number(你要转化的数据);把要转化的数据当作一个整体看待   true==>1 false==>0// 把要转化的数据当作一个整体,只要有一个不能转 则整体输出nan  但可以true==>1 false==>0var test = '100abc';console.log(test);var res =  Number(test);var flag = Number(true);console.log(typeof res);console.log(res);console.log(flag);// parseInt(你要转化的数据);把要转化的数据切成一位一位的,从左到右开始转 若能转 就输出 遇到不能的就停止  遇到小数点就停止 如果全部不能转,则输出nan   如果第一个就不能转 则直接输出nan//  true==>nan false==>nanvar test = '100abc';console.log(test);var res =  parseInt(test);var flag = parseInt(true);console.log(typeof res);console.log(res);console.log(flag);// parseFloat(你要转化的数据);把要转化的数据切成一位一位的,从左到右开始转 若能转 就输出 遇到不能的就停止  本身就转小数    如果全部不能转,则输出nan   如果第一个就不能转 则直接输出nantrue==>nan false==>nanvar test = '100abc';console.log(test);var res =  parseInt(test);var flag = parseInt(true);console.log(typeof res);console.log(res);console.log(flag);// - 背后自动给你转化// 遇到非加法 如果左右有一个数值,那么另一个会自动转为数值类型   如果转不了 就输出 nan   整体转 不会跳着转  默认使用number();var action = '666' - 100;console.log(action);//结果为566 背后默默转使用的是number方法进行转化 所以,只有全部都是数字 才可以成功转化 只有有一个不是数字类型则会输出nanvar num1 = prompt("请输入第一个数字");var num2 = prompt("请输入第二个数字");// 如果num1这个变量,接下来需要使用字符串类型的,则需要在使用运算的时候,转化 使用一下列子alert(parseInt(num1)+parseInt(num2));</script>
</body>
</html>

2.其他数据类型转化为字符串类型

  1. String()==》可以转所有类型
  2. toString() ==》不能转undefined null

要转化的变量.toString()

    • 两边都是布尔类型,则先转数值类型相加 两边有其一为字符串则拼接 拼接也是转字符串类型的一种
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>/* 1.String('你要转化的数据')可以转任意类型返回字符串2.toString()要转的.tostring()只能转数值 布尔 不能转null和undefined3."+"如果加号左右只有有一个为字符串 则结果为字符串*/
// 1.String()//  数值var num1 = 100;console.log(typeof num1,num1);var num2 = String(num1);console.log(typeof num2,num2);var num3 = 100.12;console.log(typeof num3,num3);var num4 = String(num3);console.log(typeof num4,num4);// 布尔类型var flag = true;console.log(typeof flag,flag);var res = String(flag);console.log(typeof res,res);// nullvar null1 = null;console.log(typeof null1,null1);var null2 = String(null1);console.log(typeof null2,null2);// undefinedvar undefined1 = undefined;console.log(typeof undefined1,undefined1);var undefined2 = String(undefined1);console.log(typeof undefined2,undefined2);
// 2.toString()//  数值var num1 = 100;console.log('2',typeof num1,num1);var num2 = num1.toString();console.log(typeof num2,num2);var num3 = 100.12;console.log(typeof num3,num3);var num4 = num3.toString();console.log(typeof num4,num4);// 布尔类型var flag = true;console.log(typeof flag,flag);var res = flag.toString();console.log(typeof res,res);// 以下不可以转// null/* var null1 = null;console.log(typeof null1,null1);var null2 = null1.toString();console.log(typeof null2,null2); */// undefined/* var undefined1 = undefined;console.log(typeof undefined1,undefined1);var undefined2 = undefined1.toString();console.log(typeof undefined2,undefined2); */// 第三种   +alert(true+true);//两边都是布尔类型 那么会把两边的都转为数值类型,然后相加alert('hell'+true);//有一个为字符 则结果为字符
</script>
</body>
</html>

3.其他类型转化为布尔类型

  1. Boolean()
  2. 在js中只有六种情况是假的==》0 0.0 false ‘’ null undefined
  3. [] {} 只有在js中不是空 因为null是对象中的空 所以其他情况都是真
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// number// string// boolean// null==》空对象只有null这一种 他是假的则[]{}为真// undefined// object// 假的==》0 0.0 '' false null undefined /* 方法:Boolean()*/console.log(Boolean(0));console.log(Boolean(0.0));console.log(Boolean(''));console.log(Boolean(false));console.log(Boolean(null));var test ;console.log(Boolean(test));//    js仅有六种是假的// 0 0.0 false '' null undefined// [] {} 在js中是真的,在其他中是假的var test1 = [];console.log(test1);//在js中是真的var test2 = {};console.log(test2);//在js中是真的</script>
</body>
</html>

运算符

1.数学运算符

± / * % 幂**
小数点算数 一定要检查一遍 因为0.1+0.2!=0.3 而是0.3000004 因为js脚本语言编译不严谨
个十百 》运用%和/
小时分钟秒
》运用%和/

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// **幂  + - * / %console.log(1+1);//2console.log(1-1);//0console.log(1*1);//1console.log(1/1);//1console.log(10%3);//1console.log(10**3);//1000console.log(10e3);//10*10的三次方// 小数点算数一定要看一下   语言不严谨 脚本解释型语言console.log(.1+.2);//0.30000000000000004不严谨
//提示除法取余
// 873
// 提个十百var  num = 873;var res =parseInt(num /100) ;console.log('百位',res);var ten =parseInt( num % 100 / 10);console.log('十位',ten);var ge = num  % 10;console.log("个位",ge)
//16953秒
//多少小时多少分钟多少秒
// 1m 60 1h 3600 秒
// / %parseIntvar miao = 16953;var h =parseInt(miao / 3600) ;console.log('小时',h)// var m =parseInt((miao - h * 3600) / 60);var m = parseInt(miao % 3600 /60)console.log('分钟',m)var s = parseInt(miao % 3600 % 60)console.log('秒',s)console.log(`${h}小时:${m}分钟:${s}秒`);// 数字 整数求个位 那就是求余10// 时间 多少秒 那就是求余60// 语法错误</script>
</body>
</html>

2.赋值运算符

复合型赋值运算符
+= -= *= /= **= %=

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// 复合型赋值运算符// += -= *= /= %= **=var num1 = 100;num1 += 100;//num1=num1+100num1 -= 100;//num1=num1-100num1 *= 100;//num1=num1*100num1 /= 100;//num1=num1/100num1 %= 100;//num1=num1%100num1 **= 2;//num1=num1 ** 2console.log(num1);</script>
</body>
</html>

3.比较运算符

= < <= ==[等于数值] !=【不等于】 =【等于数值和类型】 !【全都不相等】
// NaN 非数字
// 齐与任意数字运算 结果一定是NAN
比较运算符的结果 一定是布尔类型 对还是错

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// 比较运算符的结果 一定是布尔类型 true false// 等于 不等于 大于 小于 大于等于 小于等于// ==比较值是否相等 ===比较值和类型是否相等 != !==都不全等与 > < >= <= var num1 = 10;var num2 = 20;var num3 = '10';console.log(num1 == num3);//trueconsole.log(num1 === num3);//false因为类型不同console.log(num1 == num2);//falseconsole.log(num1 != num2);//trueconsole.log(num1 >= num2);//falseconsole.log(num1 <= num2);//trueconsole.log(num1 > num2);//falseconsole.log(num1 < num2);//trueconsole.log(undefined==null);//true// 因为undefined 是派生子nullconsole.log(undefined=== null);//false   因为类型不同var res = .1+.2;console.log(.3 == res);//false// NaN 非数字// 齐与任意数字运算 结果一定是NANconsole.log(NaN == NaN);//falseconsole.log(NaN !== NaN);//true</script>
</body>
</html>

4.逻辑运算符

逻辑与&& 两边全都的为真才为真
逻辑或|| 两边只要有一个为真,则为真
逻辑非 ! 真反假 假反真
逻辑运算 的结果 不一定全是true false
&&

  1. 全都是真的,则输出最后一个数
  2. 不全都是真,则从左到右 ,遇到假的,就输出为假的数值

||

  1. 全都是假的,则输出最后一个数
  2. 不全都是假,则从左到右 ,遇到真的,就输出为真的数值

例子:==》石头剪刀布 闰年
//隐式转换
// 短路运算 && 遇到假 停止向右
// 短路运算 || 遇到真 停止向右

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// 逻辑与&&【要求左右两边全都满足组】  逻辑非! 逻辑或||【要求左右两边只有一i个满足就可以,全都不满足就是假的】var height = 181;var edu = '硕士';var beauty = 80;console.log(height>=180 && edu == '硕士'  && beauty >= 80);//true// 逻辑或||var height = 181;var edu = '家里蹲';var beauty = 80;console.log(height>=180 || edu == '硕士'  || beauty >= 80);//true// 逻辑非! 真的变成假的 假的变成真的console.log(!5>4);// 逻辑运算符的结果不一定是布尔类型//隐式转换// 短路运算 && 遇到假 停止向右 // 短路运算 || 遇到真 停止向右 // &&var res = 100&& 'hello' &&true && 1.5;// true true true &&1.5console.log(res);//如果都是真,则输出最后一个数var res = 100&& 'hello' &&0 && 1.5;// true true true &&1.5console.log(res);//如果不都是真,则从左到右 遇到假的 则输出那个为假的数// ||var res = 0|| '' ||false || NaN;// false false false || nanconsole.log(res);//如果都是假的,则输出最后一个数var res = 10|| 0 ||false || NaN;console.log(res);//如果不都是假的,则从左到右,遇到真的 就输出哪个为真的数据// 最少6位 最多 30位  var username = prompt('请输入您的用户名:');var len = username.length;var res = len >=6 && len<=30;alert(res);// 剪刀 0 石头 1 布 2 // 用户 0  1  2// 电脑 2  0  1var test = prompt('请输入剪刀0布2石头1');var computer = prompt('请输入剪刀0布2石头1');var res =  (test == 0 && computer==2) || (test == 1 && computer==0) || (test == 2 &&computer==1);console.log(res);// 闰年  // 能被4整除  不能被100整除 或者 能被400整除的年份是闰年// 要求让用户输入年份  注意类型  // 打印 您输入的年份***true闰年var year = parseInt(prompt("请输入您想检验的年份")); var flag = (year % 4 == 0 )&& (year % 100 != 0 )||(year % 400 ==0);console.log('您输入的年份'+year+flag+'闰年');</script>
</body>
</html>

5.自增自减

前置则先自增自减,在参与运算
后置则先参与运算,在自增自减


<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var n = 5;// ++n;// console.log(n);//n本身来讲 +1// --n;// console.log(n);//n本身来讲 -1// n++;// console.log(n);//n本身来讲 +1// n--;// console.log(n);//n本身来讲 -1// console.log(10 + ++n);// console.log(10 + n++);// console.log(10 - --n);// console.log(10 - n--);var a = 3;var b = 4;// console.log(a++ + ++b - --n);//4// console.log(a);//4// console.log(b);//5// console.log(n);//4console.log(++a + b++ - --n+ ++a);//9</script>
</body>
</html>

6.运算符的优先级

!> &&>||
遇到比较运算符则输出true、false 其他输出 数值

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// !>&&>||// 逻辑与是:比较运算符就输出true false   数值就输出数值// var a=3,b=4,c=5;// var res = !c||b&&c;//           false||true&&true//           false||true(2)//           true(2)==>5// console.log(res);//==>5var res = 3>5&&2<7&&10==4;//        false &&true&&false//        falseconsole.log(res);//false</script>
</body>
</html>

结构

1.if


<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var age = parseInt(prompt('输入年龄'));if(age>=18){//先将齐进行隐式转换console.log('欢迎光临');}console.log('好好学习天天向上');</script>
</body>
</html>

2.if else

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var year = parseInt(prompt("请输入您想检验的年份")); if (year % 4 == 0 && year % 100 != 0 ||year % 400 ==0){console.log('您输入的年份'+year+'是闰年');}else{console.log('您输入的年份'+year+'不是闰年');}</script>
</body>
</html>

3.if else if

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var test = prompt('请输入剪刀0布2石头1');var computer = prompt('请输入剪刀0布2石头1');if  (test == 0 && computer==2 || test == 1 && computer==0 || test == 2 &&computer==1){console.log('您赢了');}else if(test == computer){console.log('平局')}else{console.log('你输了,再接再厉')}var grade = parseInt(prompt('请输入您的成绩'));if(grade>=90){console.log('A');}else if(grade<90&&grade>=80){console.log('b');}else if(grade<80&&grade>=70){console.log('c');}else if(grade<70&&grade>=60){console.log('d');}else{console.log('e');}// 80<=grade<90 js 先判断80<=grade 如果是true 那么直接输出 如果第一个不是正常的 那么判断第二个grade<90 true </script>
</body>
</html>

4.分支嵌套

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var ticket = prompt("请输入是否买票1或者0");if(ticket== '1'){console.log('买票了');var suan = parseInt( prompt("请输入核酸小时数"));if (suan<48){console.log('请安检');var safe = prompt('是否安检1、0');if(safe=='1'){console.log('一路顺风');}else{console.log('请安检');}}else{console.log('请出站做核酸');}}else{console.log('请先买票');}</script>
</body>
</html>

更多推荐

数据转换和运算符和结构

本文发布于:2024-03-08 21:28:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1722439.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:运算符   结构   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!