JS中隐式转换面试问题总结
时间:2021-09-01
本文章向大家介绍JS中隐式转换面试问题总结,主要包括JS中隐式转换面试问题总结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
隐式转换
1.题目:
//1.
console.log(1 + "true");
console.log(1 + true);
console.log(1 + undefined);
console.log(1 + null);
//2.
console.log("2" > 10);
console.log("2" > "10");
// 多个字符从左往右依次比较
console.log("abc" > "b");
console.log("abc" > "aad");
console.log(undefined == undefined);
console.log(undefined == null);
console.log(null == null);
console.log(NaN == NaN);
//3.
console.log([] == 0);
console.log(![] == 0);
console.log(![] == []);
console.log([] == []);
console.log({} == !{});
console.log({} == {});
2.相关知识
-
Number
转换console.log(Number(null)) //0 console.log(Number("")) //0 console.log(Number(undefined)) //NaN
-
Boolean
转换let x = 0; //null undefined "" NaN false console.log(Boolean(x)); //x所取六个值都转换为false
3.解答:
console.log(1 + "true"); //"1true"
console.log(1 + true); // 2
console.log(1 + undefined);
// 1 + Number(undefined) = 1 + NaN = NaN
console.log(1 + null);
// 1 + Number(null) = 1 + 0 = 1
console.log("=============================");
console.log("2" > 10);
// Number("2") = 2 (2 > 10) false
console.log("2" > "10"); //两个字符串比较 Unicode编码,true
// 多个字符从左往右依次比较
console.log("abc" > "b");
// false
console.log("abc" > "aad");
// true
console.log(undefined == undefined); //true
console.log(undefined == null); //true
console.log(null == null); //true
console.log(NaN == NaN); //false
console.log("=============================");
console.log([] == 0); // true
// [].valueOf().toString() = ""
// Number([].valueOf().toString()) = 0
console.log(![] == 0); // true
// ![] 先逻辑Boolean转换,再转换Number
// Boolean([].valueOf().toString()) = false
// Number(false) = 0
console.log(![] == []); // true
// 结合上面两题,Number(false) == Number("")
console.log([] == []); //false 地址不同
console.log({} == !{}); // false
// {}.valueOf().toString() = [object Object]
// Number({}.valueOf().toString()) = NaN
// !{} ---> Boolean({}.valueOf().toString()) = true
// Number(true) = 1
console.log({} == {}); //false
原文地址:https://www.cnblogs.com/fuct/p/15215614.html
- ssctf2017_WriteUp
- CENTOS7.2安装CDH5.10和Kudu1.2(一)
- Docker镜像管理
- 360春秋杯3道web题的简单分析
- Vue 2.0 学习总结,精华全在这里了
- 25.2 安装Docker
- 使用JDBC向Kudu表插入中文字符-cast的秘密
- 使用JDBC向Kudu表插入中文字符-双引号的秘密
- Yarn的JobHistory目录权限问题导致MapReduce作业异常
- 输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止
- Linux基础(day76)
- zabbix设置QQ邮箱告警
- 关于JSON CSRF的一些思考
- linux学习第七十篇:expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法