js经典试题之数据类型
js经典试题之数据类型
1:输出"B" + "a" + + "B" + "a"的值:
答案:BaNaNa。
分析:因为+"B"的意思就是把这个字符串转化为数字,但是因为"B"不能转化为数字,所以只能变成NaN(not a number)了。
另外因为字符加上任意类型都会把后面的类型转化为字符,使得 NaN 变成了"NaN"
2:[] == [] 的值为?
答案:false。
分析:当两个值都是对象 (引用值) 时, 比较的是两个引用值在内存中是否是同一个对象. 因为此 [] 非彼 [], 虽然同为空数组, 确是两个互不相关的空数组, 自然 == 为 false。
3: [] == ![] 的值为?
答案:true
分析:解释这个“等式”至少要四句话,涉及到了 JavaScript 的运算符优先级 、宽松相等(即 ==)的判断过程以及强制类型转换
1. 等号右边有 ! ,优先级比 == 更高,优先计算右边的结果。 [] 为非假值(参考,什么是假值:Falsy - Glossary),所以右边的运算结果为 false,即:
![] ==> false // 此处表示转换过程,下同
2. == 的任意一边有 boolean 类型的值时先把这个值转换成 number 类型,右边转换成了 0 ,即:
Number(false) ==> 0
3. == 的两边分别是 number 和 object 类型的值时,把 object 转换成 number 类型,需要对 object 进行 ToNumber 操作,即:
Number([].valueOf()) ==> 0
4. 至此,== 两边的值都变成 0 了,显然是成立的
4:列举js的数据类型:
答案:
基本数据类型:Number,String,Boolean,Undefined,Null
复杂数据类型:Object,Array,Function,RegExp,Date,Error
全局数据类型:Math
5:null == undefined的值?
答案:true。
分析:undefined值是通过null派生出来的,==时它会自动转化为null,所以返回true。不过如果用严格比较符===,不发生转化,将返回false。
6:下面哪些属于JavaScript的typeof运算符的可能结果:
typeof Symbol() //"symbol"
typeof Number() //"number"
typeof String() //"string"
typeof Function() //"function"
typeof Object() //"object"
typeof Boolean() //"boolean"
typeof null //"object"
typeof undefined //"undefined"
number、string、boolean、undefined、object、function、symbol
7:javascirpt中的数字在计算机内存储为多少Byte?
答案:8Byte
解析:
js经典试题之数据类型的更多相关文章
- js经典试题之常用的方法
js经典试题之常用的方法 1.下面代码输出的值 let s = "bob" const replaced = s.replace('b', 'l') replaced === &q ...
- js经典试题之运算符的优先级
js经典试题之运算符 1.假设val已经声明,可定义为任何值.则下面js代码有可能输出的结果为: console.log('Value is ' + (val != '0') ? 'define' : ...
- js经典试题之ES6
js经典试题之ES6 1:在ECMAScript6 中,Promise的状态 答案:pending resolved(fulfilled) rejected 解析: Promise对象只有三种状态: ...
- js经典试题之w3规范系列
js经典试题之w3规范系列 1:w3c 制定的 javascript 标准事件模型的正确的顺序? 答案:事件捕获->事件处理->事件冒泡 解析:先事件捕获从windows > doc ...
- js经典试题之原型与继承
js经典试题之原型与继承 1:以下代码中hasOwnProperty的作用是? var obj={} …….. obj.hasOwnProperty("val") 答案:判断obj ...
- js经典试题之数组与函数
js经典试题之数组与函数 1:列举js的全局函数? 答案:JavaScript 中包含以下 7 个全局函数escape( ).eval( ).isFinite( ).isNaN( ).parseFlo ...
- js经典试题之闭包
js经典试题之闭包 1:以下代码输出的结果是? function Foo(){ var i=0; return function(){ document.write(i++); } } var f1= ...
- 一道经典的js面试题
# 声明:学习编程语言最好的方式就是通过实例学习 ## 下面是我在博客上看到的一道js面试题,可以说非常经典,下面会以最简单的方式让你理解题目:```bashfunction Foo() { getN ...
- JS面试题-<变量和类型>-JavaScript的数据类型
前言 整理以前的面试题,发现问js数据类型的频率挺高的,回忆当初自己的答案,就是简简单单的把几个类型名称罗列了出来,便没有了任何下文.其实这一个知识点下可以牵涉发散出很多的知识点,如果一个面试者只是罗 ...
随机推荐
- mount/umount命令
挂载及卸载指定的文件系统 mount [选项] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [挂载点] umount [挂载点] -a ...
- MySQL数据导入导出(一)
今天遇到一个需求,要用自动任务将一张表的数据导入另一张表.具体场景及限制:将数据库A中表A的数据导入到数据库B的表B中(增量数据或全量数据两种方式):体系1和体系2只能分别访问数据库A和数据库B.附图 ...
- Maven DebugConfiguration配置运行内存
-Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m
- Linux中Kibana部署
1.下载kibana安装包kibana-5.5.0-linux-x86_64.tar.gz tar –xzf kibana-5.5.0-linux-x86_64.tar.gz解压 把文件移动到 Mv ...
- vue服务端渲染缓存应用
vue缓存分为页面缓存.组建缓存.接口缓存,这里我主要说到了页面缓存和组建缓存 页面缓存: 在server.js中设置 const LRU = require('lru-cache') const m ...
- linux 操作系统之磁盘管理
磁盘管理 存储设备:硬盘 , U盘 , 移动硬盘 , 光盘 , 软件. 组装一台电脑 无法被修改 df -h #查看磁盘分区的情况 , 可用的. 查看磁盘或者目录的内容 df “df” 常用的 “-i ...
- 对象转换成JSON字符串
定义一个Student类: 1 class Student { 2 public $name; 3 public $age; 4 function __construct($name, $age) { ...
- python3 练习题100例 (五)
题目五:输入三个整数x,y,z,请把这三个数由小到大输出. #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 题目五: ...
- Anaconda下的python如何写入环境变量中
Anaconda是一个非常好的python管理软件,实际使用起来要比直接用python自带的管理工具更好. 若需要将Anaconda下的python.exe添入环境变量中,需要如下设置 如上图所示,需 ...
- python2.7入门---CGI编程&文件上传&文件下载
这次我们来看下文件下载和上传的操作.首先是上传,HTML设置上传文件的表单需要设置 enctype 属性为 multipart/form-data,代码如下所示: <!DOCTYPE h ...