JavaScript权威指南 第六版 第六章 笔记

2024-02-11 16:38

本文主要是介绍JavaScript权威指南 第六版 第六章 笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.

除了字符串,数字,true,false,null和undefined之外,JavaScript中的值都是对象。尽管字符串,数字和布尔值不是对象,但它们的行为和不可变对象非常类似。

2.

每个属性还有一些与之相关的值,称为“属性特性”:

可写:表明是否可以设置该属性的值。

可枚举:表明是否可以通过for/in循环返回该属性

可配置:表明是否可以删除或修改该属性。


3.

除了包含属性之外,每个对象还拥有三个相关的对象特性:

对象的原型(prototype)指向另外一个对象,本对象的属性继承自它的原型对象。

对象的类(class)是一个标识对象类型的字符串

对象的扩展标记(extensible flag)指明了是否可以向该对象添加新属性。


4.

内置对象(native Object)由ECMAScript规范定义的对象或类。例如,数组,函数,日期和正则表达式都是内置对象。

宿主对象(host object)是由JavaScript解释器所嵌入的宿主环境(比如Web浏览器)定义的。

自定义对象

自有属性是直接在对象中定义的属性。

继承属性是在对象的原型对象中定义的属性


5.

存储器属性定义为一个或两个和属性同名的函数,这个函数定义没有使用function关键字,而是使用get和set。


6.

除了名字和值之外,属性还包含一些标识它们可写,可枚举,可配置的特性。

数据属性的4个特性:它的值(value),可写性(writable),可枚举性(enumerable)和可配置性(configurable).

存储器属性不具有值和可写性。它们的可写性是由setter方法存在与否决定的。

属性描述符对象(property descriptor),这个对象代表那4个属性。

其中writable,enumerable和configurable都是布尔值,set属性和get属性是函数值。


7.

Object.getOwnPropertyDesription()可以获得某个对象特定属性的属性描述符。

从名字就可以看出,Object.getOwnPropertyDescriptor()只能得到自有属性。

要想获得继承属性的特性,需要遍历原型链getPrototypeOf().

要想设置属性的特性,或者要想让新建属性具有某种特性,需要调用Object.definePeoperty().不能修改继承的属性

8.

每一个对象都有与之相关的原型(prototype),类(class)和可扩展性(extensible attribute).

通过将对象传入Object.esExtensible(),来判断该对象是否是可扩展的。

如果想将对象转为不可扩展的,需要调用Object.preventExtensions(),将待转换的对象作为参数传进去。

preventExtensions()只影响到对象本省的可扩展性。如果给一个不可扩展的对象的原型添加属性,这个不可扩展的对象同样会继承这些属性。

Object.seal()和Object.preventExtensions()类似,除了能够将对象设置为不可扩展的,还可以将对象的所有属性都设置为不可配置的。

Object.freeze将更为严格地锁定对象,除了将对象设置为不可扩展的和将属性设置为不可配置为,还可以将它自有的所有数据属性设置为只读的。


9.

对象序列化(serialization)是指将对象的状态转换为字符串,也可以将字符串还原为对象。

内置函数JSON.stringify()和JSON.parse()用来序列化和还原JavaScript对象

JSON.stringify()只能序列化对象可枚举的自有属性。


10.

对象方法

所有JavaScript对象都从Object.prototype继承属性。

例如:hasOwnProperty(),propertyIsEnumerable()和isPrototypeOf()以及在Object构造函数里定义的静态函数Object.create()和Object.getPrototypeOf()等。

toString().

toLocaleString() //返回一个表示这个对象的本地化字符串。

toJson() 

这篇关于JavaScript权威指南 第六版 第六章 笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/700291

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了