您的位置:首页 > Web前端 > JavaScript

JavaScript 基本概念:数据类型与变量

2019-06-24 01:53 211 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_40155026/article/details/93431012


JS 属于弱语言:它不用进行“预编译”,而是在运行时“编译”。

JS的组成:核心(ECMAScript), 文档模型对象(DOM),浏览器对象模型(BOM)

JS的写入及引用:

1: 在内引用外联JS代码,,缺点是他会先加载 JS 代码,最后才执 行HTML代码,

解决方法是: 在JS代码头部加上 window.onload = function() {…JS主体代码…}

2: 在 Body中创建

3: 在 HTML标签内嵌套 JS 代码。 但是这种方法不建议

数据类型 (两大类,共8种)

基本数据类型 (值类型)
String 任意的字符串
Number 任意的数字(不包括整型与浮点数)
Boolean 布尔值,true / false
undefiend 已定义未赋值的类型 var a ;
null 已定义并主动赋值为null的类型 / 空值
引用数据类型 (对象类型)
Object 对象可以是任意的类型,包括对象嵌套对象,对象嵌套函数,对象用于存放数据
function 一种可以被执行的对象
Array 一种特别的对象,以下标为索引,内部的数据是有序的

undefined 与 null 的区别?
undefiend 指的是已定义,未赋值的变量, null 则是定义了,并且赋值为 null ,为的是表明将要赋值的对象,先在内存中开辟空间

var a;
console.log(typeof a);    // 它将返回 undefined

var b = null;    // 初始化赋值为 null, 表明将要赋值为对象
b = [1,2,3];      // 确定对象赋值
b = null;       // 让 B 指向的对象称为 垃圾对象(被浏览器回收)

严格区别变量类型与数据类型

基本类型的变量值是直接保存在栈内存中,变量名用来查找到对应的栈内存中的变量值数据。

引用数据类型的变量值保存在堆内存中,并且把这个堆内存地址 0x123 赋值给栈内存中的变量。

只有引用数据类型,才会用得到堆内存。一旦引用数据类型的属性值发生改变,所有人的数据也将发生改变

var a = 123;    // 这个是基本数据类型
var b = function(){。。。}    //引用数据类型


引用数据类型的栈,堆关系图

判断数据类型的方法(共3种)

typeof 返回数据类型的字符串表达式(即数据类型),可以判断 undefined / 数值 / 字符串 / 布尔值 / function,它不能判断 null,Object,array
instanceof 判断构造函数的实例,即对象的具体类型,他会返回 布尔值,(对象类型的都统称为“构造函数”)
=== 用于判断 undefined 类型,也判断 null 类型较多
// 这个对象包含了数组,函数,对象,     对象的属性值可以是任意类型
var obj = {
a:[1,'abc',console.log],
b:function(){
console.log("xx");
},
c:c = {c1:200,c2:300}
}
console.log(obj instanceof Object);  // 判断obj 是不是构造函数的实例, 他会返回 布尔值
console.log(obj.a instanceof Array);

实例(实例对象)
根据类型,创建的实例对象(实例可以理解为调用构造函数的对象模板)

// 实例对象 对应着 类型对象
function Person(name, age){    // 构造函数
this.name = name;
this.age = age;
}
var p = New Person()      // 类型对象

数据_变量_内存

什么是数据?

存储在内存中代表特定信息的东西,它本质上是 0101010101

数据的特点:可传递,可运算,在计算机中,一切皆数据

数据的运算方式:算术运算,逻辑运算,赋值运算,运行函数

什么是内存?

内存条介质产生可存储数据的临时空间。

一块内存划分为两个数据盘:栈内存 和 堆内存

栈内存用于存放地址值 0x123, 全局变量 / 局部变量

堆内存用于存数据变量值 和 对象

什么是变量?

可变化的量,它的组成由变量名和变量值组成,每个变量都对应一块小的内存,变量名用来查找到对应的内存,而变量值就是内存中保存的数据。

内存,变量,数据三者之间的关系

内存用于存储数据的空间,变量是内存的标识(变量名存放在栈内存,变量值存放在堆内存中)

例如:var a = xxx;那么 a 内存中到底保存的是什么?

当 xxx 是基本数据时,保存的就是这个基本数据数据

当 xxx 是对象时,保存的就是这个对象的地址值

当 xxx 是一个变量时,保存的就是这个内存内容(可能是基本数据,也可能是地址值)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: