js 变量类型
变量类型分为:基础类型和引用类型
基础类型:boolean, string, number, null, undefined, symbol
引用类型: array, object
- typeof: 判断变量的类型
- instanceof:判断某个对象是否是另外一个对象的实例
主要还是理解这两个判断的不同之处,不能死记硬背。
首先清楚地知道变量类型,基础类型和引用类型。
typeof:
数据类型通过typeof判断的结果如下:
| 类型 | 结果 |
| undefined | "undefined" |
| Boolean | "boolean" |
| String | "string" |
| Number | "number" |
| Symbol | "symbol" |
| null | "object"(历史遗留问题) |
| 函数对象 | "function" |
| object,array,window... | "object" |
instanceof:
首先理解一句话,在js里,一切(引用类型)都是对象。
然后看下instanceof的判断规则: A instanceof B
沿着A的__proto__这条线找,同时沿着B的prototype这条线找,如果出现同一个引用就返回true. 如果到终点还未重合就返回false
很容易理解吧。那么
var fn = function () { };
console.log(fn instanceof Object);//true
举例子理解下Instanceof:
let s1 = new String("s");
typeof s1 === "object" //s1是String的实例化对象
s1 instanceof String // true
那再看下这个例子:
let s2 = "s";
typeof s2 === "string"
s2 instanceof String //false
这里为什么是false呢?
这里就要深刻理解typeof和instanceof的通过了。
s2只是个数据类型的值,并不是String的实例化对象
再看下null 和 undefined的不同之处:
- null == undifined (true) ; null === undefined (false)
- typeof null; //object typeof:undefined; //undifined
- null参与计算时会自动转换为0,undefined不会转换
123 + null ; //123
123 + undefined; //NAN
js 变量类型的更多相关文章
- js变量类型详解
<html> <title>js变量类型详解</title> <meta http-equiv="content-type" conten ...
- js变量类型和计算
# js入门基础-变量类型和计算 ` --首先由于我使用了一个不太合格的markdown来编写来文章,所以在移动端阅读不要太方便,建议移动端使用横屏模式或pc端阅读,当然如果你有平板那是最好的. -- ...
- JS变量类型与计算
一.题目 1.JS中使用typeof能得到哪些类型? 2.何时使用===何时使用==? 3.JS中有哪些内置函数? 4.JS变量按照存储方式区分为哪些类型,并描述其特点? 5.如何理解JSON? 知识 ...
- js变量类型及检查
一.变量的类型 JavaScript 有六种数据类型.主要的类型有 Number.String.object 以及 Boolean 类型,其他两种类型为 null 和 undefined.var ob ...
- Js变量类型
值类型和引用类型 值类型(基本类型):5种,Number String Boolean null undefined var a=10; var b=a; a=2; console.log(b); a ...
- JS 变量类型互相转换
转载自:http://zhaizhiyuan.blog.163.com/blog/static/1897672632009093147268/ Java中几种常用的数据类型之间转换方法: 1. sh ...
- js变量类型判断 严格通用 Object.prototype.toString.call()
Object.prototype.toString.call()判断结果: Object.prototype.toString.call(true) "[object Boolean]&qu ...
- js面试题知识点全解(一变量类型和计算)
1.js中使用typeof能得到哪些类型 2.何时使用===和== 3.js中的内置函数 4.js变量按存储方式区分为哪些类型,并描述其特点 5.如何理解json 以下对这些问题的知识点做一些总结: ...
- js课程 1-3 Javascript变量类型详解
js课程 1-3 Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...
随机推荐
- 555E Case of Computer Network
分析 一个连通块内的肯定不影响 于是我们先缩点 之后对于每个路径 向上向下分别开一个差分数组 如果两个数组同时有值则不合法 代码 #include<bits/stdc++.h> using ...
- Win7下使用TortoiseGit设置保存密码
1. 打开 TortoiseGit 设置,编辑 .gitconfig 文件,如图: 2. 添加下面两行配置,如图: [credential] helper = store 3. 保存退出即可
- ContextLoader
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler ...
- RequestContextHolder
JShop简介:jshop是一套使用Java语言开发的B2C网店系统,致力于为个人和中小企业提供免费.好用的网店系统. 项目主页:http://git.oschina.net/dinguangx/js ...
- 程序的内存分布 - 以 Linux 为例,基于 C 语言分析
这里以 Linux 为例,用 C 语言进行演示. 内存模型 - 内存空间名称 内容 读写操作 分配时机 高地址 kernel 内核空间 命令行参数.环境变量等 不可读写 程序运行时 - stack 栈 ...
- cross appdomain access
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 正经Python汤不热爬虫
转自:https://github.com/facert/tumblr_spider install pip install -r requirements.txt run python tumblr ...
- python3 基本数据类型_2
#!/usr/bin/python3 #以下set,dict的方法py2无法运行 #创建set 集合,使用大括号 { } 或者 set() 函数创建 #注意:创建一个空集合必须用 set() 而不是 ...
- 【ABAP系列】SAP ABAP MRKO增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP MRKO增强 ...
- 【Qt开发】解决Qt程序在Linux下无法输入中文的办法
解决Qt程序在Linux下无法输入中文的办法 一位网友问我如何在Linux的Qt的应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Cr ...