js数据类型

前言

浏览器的组成
  • Shell 外壳部分

  • 内核部

浏览器内核的组成
  • 渲染引擎(渲染引擎负责网页中内容的显示)
  • Js引擎(JS引擎创建一个环境,在这个环境中Js引擎可以解释、编译和执行JS代码)
浏览器内核大分类
浏览器名称对应的内核
谷歌浏览器 +大部分手机浏览器weikit/blink内核
火狐浏览器Gecko内核
Opera浏览器Presto内核
IE浏览器Trident内核
Safari浏览器webkit内核
JS的特点
  • 弱类型语言
  • 解释性
  • 单线程
Js的三大组成部分
  • ECMAScript 简称ES是JS的基本语法
  • DOM Document Object Model 文档对象模型
  • BOM Browser Object Model 浏览器对象模型
JS文件的引入方式
  • 外链 为符合结构,样式,行为相分离的W3C标准,一般是外链js文件
  • 内嵌
  • 行内 不推荐
什么是变量
  • 值是可以变化的量
  • 用处:能够储存JS中不同数据类型的值以供JS程序使用
变量如何声明
var a //声明一个变量  变量名为a

一个变量声明了没有赋值结果是undefined

变量名的规则
  • 变量名必须以英文字母、_、$ 开头
  • 变量名可以包括英文字母、_、$、数字
  • 不可以用系统的关键字、保留字作为变量名
关键字

JS语法中已经存在的单词 (如下:)

breakdoinstanceoftypeof
caseelsenewvar
catchfinallyreturnvoid
continueforswitchwhile
debugger*functionthiswith
defaultifthrowdelete
intry
保留字

JS语法中现在不存在,但是以后会成为关键字的单词(替补关键词) (如下图:)

abstractenumintshort
booleanexportinterfacestatic
byteextendslongcuper
charfinalnativesynchronized
classfloatpackagethrows
constgotoprivatetransient
debuggerimplementsprotectedvolatile
doubleimportpublic

var 关键词 可以申请变量

变量的用处??
变量是用来储存js的数据

var a = 1;	=是赋值

**如果一个变量声明了没有

赋值是什么结果**

整常声明变量并赋值

 var a = 2;
 console.log(a);

在这里插入图片描述
正常的结果

如果一个变量声明了没有赋值

 var a;
 console.log(a);

在这里插入图片描述
一个变量声明了没有赋值是undefined

var a; a--->undefined

申请变量的数据类型

js的数据类型分为

  • 原始值
  • 引用值

原始值

  1. 数字类型(number
  2. 字符串类型(string
  3. 布尔类型(boolean
  4. undefined类型
  5. null类型

1、数字类型number

例如:1,2,-1,0

2、字符串类型string):用一组单引号或者一组双引号包裹的数据类型

例如:'1' "1"  ''(''空的字符串)

3、布尔类型true(真) false(假)

4、undefined类型(js内置的数据类型):他只有一个值undefined 未定义

5、null类型:他只有一个值null 空对象

引用值

1、普通对象 :用一组花括号包裹的数据

{} {name:"heaven"}

2、数组对象 :用一组中括号包裹的数据

[] [1,2,3]

3、函数对象:function auto (){}

typeof数据类型检测

typeof+js数据

  1. 可以检测出JS数据的类型
  2. 检测出的结果是以字符串格式的

注意:typeof是以字符串形式输出内容,而字符串里面的内容则是值得类型

typeof原始值检测结果

  1. typeof:数字类型(number
  2. typeof:字符串类型(string
  3. typeof:布尔类型(boolean
  4. typeof:undefined类型(undefined
  5. typeof:null类型(objectjs特例BUG理论上是null

typeof引用值检测结果

  1. typeof 普通对象:(object
  2. typeof 数组对象:(object
  3. typeof 函数对象:(function

console.log 在控制台中输出结果

在控制台中: 黑色表示字符串 蓝色表示数字

问题

 var a=任意数据类型;
        console.log(typeof typeof a);

为什么是返回来的值是string(字符串类型)

为什么?

  • typeof第一回判断的是字符串形式的数据类型
  • 第二会是根据这个字符串形式作判断结果也是字符串最后typeof返回来的

结果无论什么数据类型都返回来的是字符串类型的(string

原始值和引用值的区别

原始值和引用值总结

原始值:储存在栈区

  1. number(数字)
  2. string(字符串)
  3. boolean(布尔)
  4. undefined(undefined)
  5. null(null)

引用值:储存在堆区(我们声明的变量是在栈区中引用数据的地址)

  1. 普通对象({})
  2. 数组对象([1,2,3])
  3. 函数对象(function(){})

变量a的重新赋值能否改变之前变量b的值

 var a = 2;
 var b = a;
    a = 333;
    console.log(b);

答案是否不能
在这里插入图片描述
为什么???

原始值

如下图
在这里插入图片描述
一个变量就相当于一个门牌号都有相对应的门(房间)
如果有一个变量改变了原来的值a=b那么变量b不被原先变量a改变的值所改变

引用值
在这里插入图片描述

var arr = [1,2,3];
    var arr1 = arr;
    arr1.push(4);
    console.log(arr)

在这里插入图片描述
push往这个数组在塞追加一项把数据放在栈区中把地址放在栈区

引用值是在堆去中存这的但是地址是放在栈区中,我们平时声明的变量是把在栈区中的地址赋值给变量这个地址我们是查不到的

数据的储存位置不同

  • 原始值储存在栈区 举个栗子 a = 2 数字2就储存在栈区
  • 引用值储存在堆区 举个栗子 b = [1,3] 数组[1,3]就储存在堆区

数据在操作时不同

  • 原始值操作的是值
  • 引用值操作的是值的地址
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值