热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

高级前端进阶:01讲,JS数据类型说明、内存理解以及常见的面试考点

JS的数据类型和面试考点JS的数据类型基本数据类型引用类型区别内存存储面试点typeof检测数据类型JS的数据类型基本数据类型string、boolean、number、null

JS的数据类型和面试考点

  • JS的数据类型
    • 基本数据类型
    • 引用类型
    • 区别
    • 内存存储
  • 面试点
    • typeof 检测数据类型


JS的数据类型

基本数据类型


string、boolean、number、null、undefined、Symbol


引用类型


Object、Array、RegExp、Date、Function


区别


引用类型值可添加属性和方法,而基本类型值则不可以。


内存存储


基本类型
基本类型的变量是存放在栈内存(Stack)里的
基本数据类型的值是按值访问的
基本类型的值是不可变的
基本类型的比较是它们的值的比较
引用类型
引用类型的值是保存在堆内存(Heap)中的对象(Object)
引用类型的值是按引用访问的
引用类型的值是可变的
引用类型的比较是引用的比较


面试点

typeof 检测数据类型

// string、boolean、number、undefined、Object、function、Symbol//可以先考虑下以下的变量会打印出什么结果var a1 = "hello";var a2 = true;var a3 =11;var a4 = undefined;var a5 = null;var a6 = [1,2,3]var a7 = function(){}; var a8 = Symbol('aa');var a9 = {} 或者new Object();console.log(typeof a1);//stringconsole.log(typeof a2);//booleanconsole.log(typeof a3);//numberconsole.log(typeof a4);//undefinedconsole.log(typeof a5);//objectconsole.log(typeof a6);//objectconsole.log(typeof a7);//functionconsole.log(typeof a8);//symbol console.log(typeof a9);//object

从以上结果可以得出typeof 只能区别出

string、boolean、number、undefined、function、symbol

不能区别

null、Array、Object

那么用什么来区分啦?
instanceof 可以上场了
instanceof 可以判断Array、Object和Function
上代码

var s1 = [1,2,3];
var s2 = {};
var s3 = function(){};
console.log(s1 instanceof Array);// true
console.log(s2 instanceof Object);//true
console.log(s3 instanceof Function);//true

下面说说 null 和 undefined 的区别吧

undefined 代表没赋值
null 赋值了给了null//一般面试笔试必有的一道题
console.log(null==undefined );// true
console.log(null===undefined );//false

第一讲结束,不知道学到并理解多少,需要多写多悟,记在脑子里。


推荐阅读
  • ECMA262规定typeof操作符的返回值和instanceof的使用方法
    本文介绍了ECMA262规定的typeof操作符对不同类型的变量的返回值,以及instanceof操作符的使用方法。同时还提到了在不同浏览器中对正则表达式应用typeof操作符的返回值的差异。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 巧用arguments在Javascript的函数中有个名为arguments的类数组对象。它看起来是那么的诡异而且名不经传,但众多的Javascript库都使用着它强大的功能。所 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了在使用vue和webpack进行异步组件按需加载时可能出现的报错问题,并提供了解决方法。同时还解答了关于局部注册组件和v-if指令的相关问题。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 一、什么是闭包?有什么作用什么是闭包闭包是定义在一个函数内部的函数,它可以访问父级函数的内部变量。当一个闭包被创建时,会关联一个作用域—— ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
  • Python中程序员的面试题有哪些
    小编给大家分享一下Python中程序员的面试题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有 ... [详细]
author-avatar
min覀igreenr
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有