《JavaScript高级语言设计》(第三版)学习笔记(1)

本文是《JavaScript高级语言设计》第三版的学习笔记,主要介绍了JavaScript的组成部分——ECMAScript、DOM(文档对象模型)和BOM(浏览器对象模型)。ECMAScript定义了语言的语法、类型、语句等,DOM分为DOM1、DOM2和DOM3级别,而BOM提供了浏览器相关功能的接口。此外,文中还涵盖了JavaScript的基本语法,如变量、数据类型、操作符及对象等。
摘要由CSDN通过智能技术生成

javascript和ECMAScript通常被人们表达相同的含义
一个完整的JavaScript由三个部分组成:ECMAScript(核心),DOM(文档对象模型),BOM(浏览器对象模型)
由ECMA-262定义的ECAMScript与Web浏览器没有依赖关系
ECMA-262定义的只是这门语言的基础
Web浏览器只是ECMAScript实现的可能的宿主环境之一,其他可能的宿主环境包括Node和Adobe Flash
ECMA-2626规定了:语法,类型,语句,关键字,保留字,操作符,对象
JavaScript实现了ECMAScript,Adobe ActionScript同样也是实现了ECMAScript

DOM(Document Object Model)文档对象模型
DOM1级别
DOM1级别由两个模块组成:DOM Core和DOM HTML
DOM Core规定的是如何映射基于XML的文档结构,以简化对文档中任意部分的访问操作
DOM HTML 在DOM核心的基础上加以扩展,添加针对HTML的对象和方法
DOM2级别
DOM1主要是映射文档的结构,DOM2级在原有的DOM基础上又扩充了鼠标和用户界面事件,范围,遍历等细节模块还通过对象接口增加对CSS的支持,DOM2引入的新模块包括
DOM视图(DOM Views):定义了不同文档视图接口
DOM事件(DOM Events):d定义了事件和事件处理接口
DOM样式(DOM Style):定义了基于CSS为元素应用样式的接口
DOM遍历和范围(DOM Traversal and Range):定义了遍历和操作文档树的接口
DOM3级别
引入统一方式加载和保存文档的方法–在DOM加载和保存(DOMLoad and Save)模块中定义
新增验证文档的方法–在DOM验证(DOM validation)模块

BOM浏览器对象模型弹出新浏览器窗口功能
移动,缩放和关闭浏览器功能
提供浏览器详细信息的navigator对象
提供浏览器加载页面详细信息的location对象
提供用户显示器分辨率的screen对象
对cookie的支持
像XMLHttpRequest和IE的ActiveXObject这样的自定义对象

HTML中引用script标签

<script type="text/javascript" src="w外部js脚本相对路径"></script>

六个属性

属性名含义
async表示立即下载脚本,只对外部脚本文件有效
charset很少使用,表示通过src属性指定的外部文件代码文的字符集
defer表示脚本可以延迟到文档完全被解析和显示后再执行,只对外部脚本文件有效
language弃用
src表示包含要执行代码的外部文件
typelanguage的替代属性,表示脚本的MIME类型,实际上服务器在发送JavaScript文件时使用的MIME类型通常是application/x-javascript,但在type中设置值可能导致脚本被忽略,在非浏览器中还可以使用application/javascript和application/ecmascript,目前type的属性还是text/javascript

script标签使用的两种方式

<script>
//脚本
</script>
<script type="text/javascript" src="w外部js脚本相对路径"></script>

javascript区分大小写

标识符
第一个字符必须死字母,下划线,或$

注释
//单行注释
/**/多行注释

严格模式
代码开始前写上
“use struct”

变量
javascript的变量是松散型
未经初始化的变量会保存undefined值
省略var 的变量为全局变量 在严格模式下错误

ECMAScript的五种简单数据类型
Undefined Null Boolean Number String
一种复杂数据类型
Object 其本质上是无序的名值对组成

typeof操作符

操作类型返回值
未定义undefined
布尔值boolean
字符串string
数值number
对象或nullobject
函数function

Undefined类型
只有一个值,这个值为undefined,未对变量初始化的变量默认取值为undefined
特殊情况:typeof 未声明的变量也获得undefined

Null类型 只有一个值,这个值为null,表示对象空指针
undefined是null派生出来的值 因此undefined == null 为true

Boolean类型 该类型有两个值 true和false
ECMAScript中所有类型的值都与这两个等价
将一个值转为其对应的Boolean 值使用转换函数Boolean() 或 !!
转换规则

类型规则
String任何非空字符串–>true,”“->false
Number任何非零数字值包括无穷大->true,0或NaN—>false
Object任何对象->true,null->false
Undefinedundefined->false

Number类型
浮点数的最高进度是17位小数
Number.MIN_VALUE最小值
Number.MAX_VALUE最大值
超过最小值或最大值范围转为Infinity值判断是否无穷isFinite()
NaN 非数值
isNaN()判断是否为数值
isNaN(true)返回true因为true为1
isNaN也使可用于对象,先调用对象的valueof(),基于返回值调用toString()方法
数字转换
Number(),parseInt(),parseFloat()
如果转换值为null返回0
如果转换值为undefined返回NaN
parseInt可传入第二个参数多少进制-基数

String类型
数值,布尔值,对象,和字符串值都有toString方法,null和undefined无此方法

Object类型
在ECMAScript中Object类型是所有其他实例的基础(类似于java.lang.Object)
Object的每个实例都具有下列属性和方法

属性或方法说明
constructor保存用于创建当前对象的函数
hasOwnProperty(propertyName)用于检查给定的属性在当前独享实例中是否存在
isProptotypeOf(Object)用于检查出入对象师傅是对象的原型
propertyIsEnumerable(propertyName)用于检查是否给定的属性能够使用for-in来枚举
toLocaleString()返回字符串的表示,与执行环境对应
toString()对象的字符串表示
valueOf()表示对象的字符串,数值或布尔表示

一元操作符
++ –
位操作符
左移,右移,无符号右移 ~ 按位非 & |^ 按位异或

for-in语句
精准的迭代语句,用于枚举对象的属性

with 将代码的作用域设置到一个特定的对象中,不建议使用

函数参数的理解笔记(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值