资讯专栏INFORMATION COLUMN

Js基础知识(一) - 变量

MageekChiu / 1794人阅读

摘要:内置函数和对象中内置了一些函数和对象,很多语言都会有内置的方法,直接可以调用开发。根据语法标准提供的内置函数包括和。注意基础语法提供的内置函数和方法只有这些,像那是浏览器提供给我们的。强制类型转换大家应该都知道。

js基础 - 变量

*大家对js一定不会陌生,入门很简单(普通入门),很多人通过网络资源、书籍、课堂等很多途径学习js,但是有些js基础的只是往往被大家遗漏,本章就从js变量类型来说一说js

变量类型*

js变量类型分为基本类型(或者叫值类型)和引用类型。值类型包括Number、Boolean、String、undefined、 null、Symbol (ES6 新增)。 引用类型包括Object 、Array、Function、Date、RegExp,值类型存放在栈内存中,引用类型的数据是存放在堆内存中。

值类型的数据在复制的时候会在栈内存中新建一个新的存储区域用来存储新的变量,和之前的值没有任何关系。比如如下例子:

var a = "a"
var b = a
b = "b"
console.log(a) // "a"

当b的值改变的时候,a的值不会跟着改变。这个很简单,大家也都能理解。

下面说一下引用类型,定义一个对象的时候会在栈内存中存储了一个指针,该指针指向堆内存中该对象的存储地址,当复制这个对象赋值给另一个对象的时候,只是把该对象的指针地址赋值给了另一个对象变量,他们都指向同一个对象,所以当一个值改变的时候,另一个值会跟着改变,看下面的例子就会明白:

var obj1 = {name:"obj1"}
var obj2 = obj1
obj2.name = "obj2"
console.log(obj1.name) // "obj2"

大家可以执行一下上面的代码,打印obj1.name的时候输出"obj2",这就是因为对象是引用类型的变量。

JavaScript内置函数和对象

js中内置了一些函数和对象,很多语言都会有内置的方法,直接可以调用开发。
根据ECMAscript(javascript语法标准)提供的内置函数包括Object、Array、Boolean、Number、String、Function、Date、Regexp和Error。内置对象包括Math和JSON。

注意:javascript基础语法提供的内置函数和方法只有这些,像Window、Navigator那是浏览器提供给我们的。还有一点前面的集中都是内置函数而不是内置对象,最后的Math和JSON是内置对象,这个在我们以后的章节讲原型链的时候就明白了,这里先记住就OK了。
几个常见问题 何时使用使用==何时使用===

这个问题大家应该都不陌生,在开发或者面试中会经常碰见的问题。那么答案到底是什么呢?
首先看到这个问题的时候先不要去想到底那些情况使用==那些情况使用===,我们应该首先去想这个问题背后涉及到那些知识点。很显然,这里考的就是强制类型转换,在使用==得时候会强制类型转换,而使用===的时候不会发生强制类型转换。强制类型转换大家应该都知道。下面我们总结一下:
在if()条件判断中0、""、NaN、null、undefined、false都会转为false,判断对象的一个属性存在可以使用如下语法:

var obj = {}
if(obj.name == null){...} // 相当于obj.name === null || obj.name === undefined
/* 该方法只适用于判断对象的属性,不能用于直接判断变量是否存在 */
if(someVal){...} // 这里浏览器会报错

标准答案是:只有在判断一个对象的属性是否存在的时候使用==,其他都使用===。

typeof能否准确判断变量类型

这里首先想到的是对typeof和变量类型的理解,由于typeof只能区分基本类型的变量,所以不能准确的判断变量类型。

Undefined  -- Undefined  
Boolean    -- Boolean
Number     -- Number     
String     -- String


----------
Object     -- Object
Function   -- Function
Array      -- Object
null       -- Object

所以答案是typeof只能判断值类型的变量,不能判断引用类型的变量,要想准确判断变量的类型,可以在以后的原型的章节中介绍

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/51768.html

相关文章

  • Js基础知识) - 变量

    摘要:内置函数和对象中内置了一些函数和对象,很多语言都会有内置的方法,直接可以调用开发。根据语法标准提供的内置函数包括和。注意基础语法提供的内置函数和方法只有这些,像那是浏览器提供给我们的。强制类型转换大家应该都知道。 js基础 - 变量 *大家对js一定不会陌生,入门很简单(普通入门),很多人通过网络资源、书籍、课堂等很多途径学习js,但是有些js基础的只是往往被大家遗漏,本章就从js变量...

    leone 评论0 收藏0
  • JavaScript知识架构学习路径()- 变量

    摘要:在此,我们首先根据变量的作用域,将变量划分为三级,具体是全局变量局部变量和参数变量。 【摘要】本文是专为JavaScript入门者而总结的,总体上将JavaScript的基础部分分成了九大块,分别是变量、运算符、数组、流程控制结构、字符串函数、函数基础、DOM操作基础、文档对象模型DOM和正则表达式。 【关键字】变量、运算符、数组、流程控制结构、函数、DOM、正则表达式。 本篇文章的主...

    toddmark 评论0 收藏0
  • JS基础知识变量对象、作用域链和闭包

    摘要:前言这段时间一直在消化作用域链和闭包的相关知识。而作用域链则是这套规则这套规则的具体运行。是变量对象的缩写那这样放有什么好处呢我们知道作用域链保证了当前执行环境对符合访问权限的变量和函数的有序访问。 前言:这段时间一直在消化作用域链和闭包的相关知识。之前看《JS高程》和一些技术博客,对于这些概念的论述多多少少不太清楚或者不太完整,包括一些大神的技术文章。这也给我的学习上造成了一些困惑,...

    Keven 评论0 收藏0
  • JS基础入门篇(

    摘要:申明变量变量名以分号结束。如果一定要使用点的话,需要改变成驼峰式命名法。基础篇练习看完以上的小伙伴,可以看两个例子的效果,试着做一下。练习一点击按钮,设置方块大小练习二点击按钮,增加或减小字体大小 1.JS存放在代码中的位置 1.JS写在行间 hello world 优点:直接,简单 缺点:不方便复用和维护,不符合结构行为分离规范 2.JS写在script ( 一般写在body...

    alighters 评论0 收藏0

发表评论

0条评论

MageekChiu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<