-
Number();
-
parseInt();
-
parseFloat();
-
非加法运算 隐式转换
-
代码演示 <script> // Number() = > 整体转换 // parseInt() => 转成整数 一位一位的 // parseFloat() => 转成浮点数 一位一位的 // 非加法运算 =>同Number()
// var birth = prompt('请输入出生的年份:'); // // 2022年 // var age = 2022-birth; // birth是个字符串 // // 2022-Number(birth) // // 2022是数值 减去birth 自动的把birth转成数值类型 // console.log('您今年'+age+'岁了!'); // 隐式转换 var num1 = prompt('请输入第一个小数'); var num2 = prompt('请输入第二个小数'); console.log('结果是:'+(parseFloat(num1)+parseFloat(num2))); // 确定转成整数还是小数
</script>
Number()
语法: Number(你要转换的数据); 结果: 转换好的数值数据 转换规则: 1.把转的内容当做一个整体来看待 2. 如果整体能转成一个合法的数字 那么就能转成数值 3. 如果其中一个不能转成合法的数字 那么最后的结果是 NaN 4. true => 1 5. false=> 0 6. 认. Number('100.567') => 100.567
// // 1. Number() 函数 // var text = '100a'; // 当做一个整体来看到 // // 整体中有一个不能转成数字 整体结果就是NaN // console.log(text); // console.log(typeof text); // var res = Number(text); // console.log(res); // NaN '1' 1 '0' 0 '0' 0 'a' 不能转成一个数字 // console.log(typeof res);
parseInt() 语法: parseInt(你要转换的数据); 结果: 转换好的数值类型数据 规则: 1.不管转换的是什么数据,都是一位一位的看待 2.如果第一位 不能转成合法的数字 那直接输出NaN 停止转换 3.如果第一位可以那么保留这个数字,那么继续向后转换 4. 以此类推直到不能转换或者结束
注意事项: 不认识小数点 true 不能转成1 => NaN false 不能转成 0 => NaN var num1 = '1000.5adf3'; console.log(num1); console.log(typeof num1); console.log('-----------------'); var res = parseInt(num1); console.log(res); // 1000 不认识小数点所以它停止了 console.log(typeof res);
console.log(parseInt(true)); // NaN console.log(parseInt(false));// NaN
parseFloat()
语法: parseFloat(你要转换的数据); 结果: 转换好的数值类型数据 规则: 1.不管转换的是什么数据,都是一位一位的看待 2.如果第一位 不能转成合法的数字 那直接输出NaN 停止转换 3.如果第一位可以那么保留这个数字,那么继续向后转换 4. 以此类推直到不能转换或者结束
注意事项: 认识小数点 true 不能转成1 => NaN false 不能转成 0 => NaN
//parseFloat() var num1 = '100.456abc'; console.log(num1); console.log(typeof num1);
var res = parseFloat(num1); console.log(res); // 100.456 console.log(typeof res); // number
// 非加法数学运算转成 数值类型
// 转换规则跟 Number()是一样一样的 // 当做一个整体来看到 整体中如果有一个不能转成数值 那么结果就是NaN
练习
//输入一个出生的年份 // 输出 今年多少岁
//计算器
// 第一个数 第二个数都是小数 // 得到正确的结果
# 其他类型转字符串 1. String() 2. toString() 3. 字符串拼接 4. ``` 代码展示 <script> // var num = null; // console.log(num); // console.log(typeof num); // var res = String(num); // console.log(res); // console.log(typeof res); // var num = 0xabc; // console.log(num); // console.log(typeof num); // var res = num.toString(); // console.log(res); // console.log(typeof res); // console.log(1+2+3+6); // console.log(1+'2'+3+6);// 1236 console.log(1+'2'-3+6); // 1 字符串12 // 12 - 3 9 // 9 + 6 = > 15 </script>
String() 语法: String(你要转换的数据) 结果: 转换好的字符串数据 重点: 任意类型都能转 var num = null; // undefined null 100 100.5 0xabc 都能转 console.log(num); console.log(typeof num); var res = String(num); console.log(res); console.log(typeof res); toString() 语法: 你要转换的数据.toString() 结果: 转换好的字符串数据 重点: 不能转undefined和null 直接报错 字符串拼接 + 左边只要有一个是字符串 最后的结果就是字符串 + 两边都是数值或者bool类型的时候 才进行数学运算
其他类型转布尔类型重点
后边会经常用来对数据进行判断
代码展示 <script> console.log(Boolean(NaN)); console.log(Boolean(0)); console.log(Boolean(0.0)); console.log(Boolean(false)); console.log(Boolean('')); console.log(Boolean("")); console.log(Boolean(``)); console.log(Boolean(undefined)); console.log(Boolean(null)); // '' // ' ' => 这个不是空字符串 有一个空格 // 空字符串是真空的 // 空格也是内容 ' ' 是非空字符串 console.log(Boolean(-1)); console.log(Boolean(0.00000000001)); console.log(Boolean('0')); </script>
Boolean(); 语法: Boolean(要转换的数据); 结果: 转换好的布尔类型数据 true false 数值 字符串 布尔 undefined null 复杂数据类型 js中转成false的情况 其它都是true NaN => false 0 0.0 => false '' "" `` => false undefined => false null => false false => false
运算符
算数运算符
代码展示
<script> /* var num1 = prompt('请输入第一个数字'); var num2 = prompt('请输入第二个数字'); // 上面得到的结果是两个字符串 // 将上面转成数值类型 num1 = parseInt(num1); num2 = parseInt(num2); console.log('和:'+(num1+num2)); console.log('差:'+(num1-num2)); console.log('积:'+(num1*num2)); console.log('商:'+(num1/num2)); console.log('余数:'+(num1%num2)); console.log('幂:'+(num1**num2)); */ // 6789秒 // 多少小时 多少分钟 多少秒 // 1小时 3600秒 // 1分钟 60秒 // 小时 6789 有多少个3600 秒 => 小时 // 剩下的 有多少个60秒 => 分钟 // 不足60秒 => 秒 // var times = 6789; // // times / 3600 => 得到一个小数 // var hour = parseInt(times / 3600) // 整数 // var minute = parseInt(times % 3600 / 60); // 分钟 // var second =times % 60; // console.log(`${hour}小时${minute}分钟${second}秒`) var num1 = 357; // 提取百位 十位 个位 // 有几个100 => 百位就是几 // 小于十的部分 => 个位 // 有几个一百 拿走以后 剩下的部分 有几个十 => 十位 var bai = parseInt(num1 / 100) ; // 3.57 我们要的是3 不要.57 var ge = num1 % 10; // 7 小于10的部分 var shi = parseInt(num1 % 100 / 10); console.log(`${bai}百${shi}十${ge}个`) </script>
+ 两边都是 数字 或者 布尔类型的时候 才进行数学运算 只要左右有一个是字符串 那么+就进行字符串拼接 - * / 商 % 10 / 3 = 3 ... 1 被除数 / 除数 = 商 ... 余数 只要余数 不要商 ** 6 ** 2 底数 ** 指数
字面量\ 标识符\表达式\ 返回值
10 100 true 就是字面量
变量名称 函数名称 标识符
数字 运算符 变量 的组合 => 表达式
返回值 得到的结果
赋值运算符
代码展示
<script> // var fruit = 'apple'; // // fruit = fruit + 'banana'; // // console.log(fruit); // fruit += 'banana'; // fruit = fruit + 'banana'; // console.log(fruit); var num1 = 200; // num1 = num1 - 50; // console.log(num1); // 150 // num1 -= 50; // num1 = num1 - 50; // console.log(num1); num1 *= 50; // num1 = num1 * 50; num1 /= 50; // num1 = num1 / 50; num1 %= 50; // num1 = num1 % 50; num1 **= 3; // num1 = num1 ** 3; </script>
var 变量名 = 值; // 把值放到指定名字的空箱子中 这个过程就叫赋值 = 就是赋值符号 右边的内容给到左边的箱子中 += -= *= /= %= **=
比较运算符
结果一定是布尔类型
代码展示
<script> // alert(10>5); // alert(10>=5); // alert(5<9); // alert(5<=9); // js中一个值 包含两部分 // 1.值 2.类型 // 10 值 10 类型是 Number // alert(123 == '123'); // true // // 123 值 123 类型 Number // // '123' 值 123 类型 String // alert(123 === '123');// false // // === 必须值和类型都相等才是true // undefined \null // NaN // // undefined 是从null 派生出来的 两个等号是true // console.log(undefined == null); // true // // 因为类型不一致 所以三个等号 是false // console.log(undefined === null); // false // console.log(1 == true); // true // console.log(0 == false); // true // console.log(1 === true); //false // console.log(0 === false);// false // console.log(NaN == NaN); // NaN 不等于任何值 包括NaN console.log(NaN !== NaN); // true </script>
> >= < <= == === != !== = == === 的区别 ? = 赋值 == 判断值是否相等 === 判断值和类型是否都相等
逻辑运算符
代码展示
<script> // 比较运算符的结果一定是布尔类型? // 逻辑运算符的结果一定是布尔类型? 不一定 // && // console.log(5>4 && 26>7); // true 两边都是true 结果true // console.log(7>6 && 8>9); // fale 两边有一个是false 结果false // || // console.log(5>4 || 26<7); // true 两边有一个是true 结果true // console.log(5<1 || 6>7); // false 两边都是false 结果false // ! // console.log(!1>10); // 0>10 false // console.log(!(1>10)); // true // 其它类型转换成布尔类型 // NAN undefined null 0 '' "" '' 0.0 false => false // 逻辑 && 如果不是表达式 // 会隐士转成布尔类型 // 如果左右都是true 那么输出最右边的值 // console.log(123 && 456.5 && true && 'helloworld'); // helloworld // // 如果从左往右走的过程中 遇到false 那就停止向右 // // 输入转为false的值 // console.log(123 && 456.6 && 0.0 && 'helloworld'); // 0 // 逻辑 || 如果不是表达式 // 会隐士转成布尔类型 // 如果遇到true 停止向右走 输出为true的值 // 如果都是false 那么输出最右边的值 // console.log('hello' || 456.6 || 789 || true || 'haha'); // hello // console.log('' || 0.0 || NaN || false || 0); // 短路运算 // && // 遇到false 停止向右走 输出false的值 // console.log('hello world' && 123 && 0 && 'haha');// 0 // // || // // 遇到true 停止向右走 输出true的值 // console.log('' || 123 || 0 || 'haha'); // 123 // 注册用户 // 用户名必须是 6-30位 并且 不能为空 // var username = prompt('请输入用户名:'); // 字符串的长度 length // console.log(username !== ''&& username.length>=6 && username.length<=30); // js不支持传递判断 //6<=username.length <=30 //6<=username.length 为true 后边就不判断了 // 范围的判断 应用上边的判断方式 // 6<=username.length && username.length<=30 // console.log(username !=='' && 6<=username.length <=30); </script>
找对象 文艺青年 找女朋友 长的漂亮 并且 各自175cm以上 并且皮肤白 并且 腿长 并且眼睛大 孝顺 有一个不满足 pass掉 躺平青年 找女朋友 长的漂亮 或者 个子175cm 或者 皮肤白 或者 腿长 或者 眼睛大 或者 女的 或者孝顺 满足其中一个条件就可以 都不满足 pass掉 && and 并且 || or 或者 ! 取反 true -> false false->true && 并且 and 符号两边的结果都是true 最终的结果位true 符号两边有一个是false 结果就是false 同真为真,一假则假 短路运算: 从左往右 左边为true 才会继续执行右边的 如果左边为false 那么就停止向右 || 或者 or 符号两边的结果都是false 最终的结果位false 符号两边有一个是true 结果就是true 一真则真,同假为假 短路运算 左边为false 继续往右走 如果左边为true 那么就停止向右 ! not true => false false => true bmi 让用户输入体重kg 和身高 m 如果 体重 / 身高的平方 结果在 18.5 -23.9之间 身材就是标准的 测试你的身材是否标准
自增自减运算符
代码展示
<script> // ++ /* 前置 ++ 在前面 变量在后边 后置 变量在前面 ++在后边 共同点: 只要执行了 一定会让改变的值改变(+1) 区别: ++num 前置 ++ 先把变量本身的值改变+1 用改变后的值参与运算 num++ 后置 ++ 先把变量本身的值参与运算 然后自身的值再改变(+1) */ //-- // /* --num 前置 -- 在前面 变量在后边 num -- 后置 变量在前面 --在后边 共同点: 只要执行了 一定会让改变的值改变(-1) 区别: --num 前置 -- 先把变量本身的值改变-1 用改变后的值参与运算 num-- 后置 -- 先把变量本身的值参与运算 然后自身的值再改变(-1) */ // var num = 10; // var res = num++ + ++num; // console.log(res); // console.log(num); // --num2 先减一 再参与运算 // num2-- 先参与运算 再减一 var num2 = 10; var res2 = --num2 + num2-- - --num2; console.log(res2); console.log(num2); // </script>