鸿蒙-JS-第一周day02

引用数据类型之普通对象(object)
把多组键值对用大括号包起来 ,并且属性与属性之间用“逗号”进行分割
语法:
属性名和属性值
●属性名:就是用来描述某种特征或者特点的名字,(又被称作键,key)
●属性值:就是这个特征的具体值(又被称作值,value)
●合称键值对
基本操作:增、删、改、查
1、获取属性值的获取   
对象的属性名一般都是字符串格式(还可以是数字格式),属性值可以是任意类型数据
●对象.属性名;
●对象['属性名'];

  注意:如果对象里面没有这个属性名,得到的值就是“undefined”
2、增、改
对象的属性名(键)是不允许重复的,之前没有这个属性则为新增,之前有这个属性,则是修改对应的属性值
如果原来的对象中没有那个属性名,就是新增,如果有就是修改

3、删除
●彻底删除  delete 对象["属性名"]
●只是让对象中的属性值为空, obj["属性名"]=null;


4、思考题:

5、属性名是数字格式
     对象的属性名只能是数字或者字符串,如果是数字的话不能用obj.数字,会报错:
   Uncaught SyntaxError: Unexpected number;  //语法错误
6、注意:
● 对象的属性名不能是引用数据类型值
○基于 对象[属性名] 的方式操作,需要保证属性名是一个值(字符串/数字/布尔等都可以),如果不是值而是一个变量,它会把变量存储的值作为对象的属性名进行操作
○基于 对象.属性名 的方式操作,属性名就是点后面的
引用数据类型之数组简单了解
●用中括号([])包含以逗号分隔的元素列表
● 数组是特殊的对象:
○1.它的属性名是数字,数字从零开始,逐级递增,每一个数字代表着当前项的位置 =>我们把这种数字属性名叫做“索引”
○2.默认有一个length属性存储数组的长度
数据类型之间的转换
之前我们学的知识基本数据类型之间的转换
那如果带有引用数据类型呢?
Number()
+ 对象转换为数字:先把对象转换为字符串,再把字符串转为数字
* + 普通对象
* + 数组对象

1、普通对象转换为数字类型
2、数组转换为数字类型
String()
1、普通对象转换为字符串
普通对象转换为字符串都是 "[object Object]"
2、数组转换为字符串
数组对象转换为字符串是 "第一项,第二项..."(逗号分隔数组中的每一项)
Boolean()
除了0 "" NaN undefined null 其他都是true
1、普通对象转换为布尔值
2、数组转换为布尔值
基础调试代码
浅谈js运行机制
(堆栈内存和不同数据类型的操作方式)
堆(heap)栈(stack)内存
浏览器加载页面,运行代码的时候:
●每打开一个页面,就会从计算机的内存条中分配出两块内存:堆内存(heap)和栈内存(stack)
●堆内存(heap):
○主要存放引用数据类型的值
●栈内存(stack):
○给代码提供可执行的环境
○存贮基本数据类型的值
1、思考题:


1、浏览器打开页面的时候会划分两块内存,堆内存和栈内存:
●栈内存的作用:
○1、给js提供一个可运行的环境
○2、存储基本数据类型的值
●堆内存的作用:存放引用数据类型,对象的话存贮的就是键值对,如果是函数,把整个函数当成字符串进行存储

2、代码自上往下执行 (之前还有一个变量提升阶段,会在后面的课程中进行讲解)
====>  基本数据类型:存在栈内存中,  按值操作
====>  引用数据类型的值比较复杂,存在堆内存中,按引用地址的操作

3、赋值操作的三步曲:
+ 先创建值
+ 再创建变量
+ 最后把创建的变量和值关联在一起

image.png


2、练习题
2.1

image.png


2.2

在js中用来检测数据类型的四种方式
●typeof
●instanceof
●constructor
●Object.prototype.toString.call()

typeof 运算符 详解
      typeof 首先返回的是一个字符串,它返回的类型.
●'number'
●'string'
●'boolean'
●'undefined'
●'object'
●'function'

特点:
●typeof null 的结果是 "object"(这个是浏览器的BUG:所有的值在计算中都已二进制编码存储,浏览器中把前三位是000的当做对象,而null的二进制前三位就是000,所以被识别为对象。
● typeof 普通对象/数组对象/正则对象... 结果都是"object",这样就无法基于typeof区分是普通对象还是数组对象等了

Plain Text复制代码

1

2

3

4

5

6

7

8

typeof 12 ===> "number"

typeof "zhufeng" ====》 'string'

typeof false ===>'boolean'

typeof true ====> 'boolean'

typeof null ====> 'object'

typeof undefined ====>'undefined'

typeof [1,2] =====>"object"

typeof function(){} =>"function"


BAT面试题
1、

Plain Text复制代码

1

2

3

4

5

typeof []

typeof typeof []

typeof typeof typeof typeof typeof []


 

1 人点赞

  • 大大怪

1

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值