JavaScript
2020-09-03 14:00:23 0 举报
AI智能生成
JavaScript高级程序设计指南笔记
作者其他创作
大纲/内容
在 HTML 中使用JavaScript
<script>元素
async:立即下载,只适应外部脚本
charset:指定字符集
defer:延迟加载,只对外部脚本有效
language:废弃
src:包含要执行的外部文件
type:脚本语言的内容类型
charset:指定字符集
defer:延迟加载,只对外部脚本有效
language:废弃
src:包含要执行的外部文件
type:脚本语言的内容类型
标签位置
放在 <html></html>标签后面
变量、作用域、内存
基本概念
语法
区分大小写
第一个字符必须是一个字母、下划线(_)、$
第一个字符必须是一个字母、下划线(_)、$
标识符
基本类型是保存在栈内存中的简单数据段,它们的值都有固定的大小,保存在栈空间,通过按值访问
栈内存与堆内存的区别
严格模式“use strict”
关键字和保留字不要用
变量
1、用来保存数据的容器
2、使用 var 创建
2、使用 var 创建
数据类型
typeof操作符
undefined:声明变量未初始化、
null:空对象引用
boolean:布尔值 true / false
string:字符串不可改变
使用 toString() 方法将其他类型转换为字符串
number:数字类型
NaN:非数字
数值转换
Number():强转
- 如果是 Boolean 值,true 和 flase 将分别转换为 1 和 0
- 如果是数字,只是简单的传入和返回
- 如果是 undefined ,返回 0
- 如果是 string,里面有数字则转换为对应的数字。是空返回 0。是其他返回 NaN
- 如果是Object,调用 valueOf() 方法。如果返回 NaN,则调用 toString() 方法
parseInt():
parseFloat():只解析十进制数字
Object:一组数据和功能的集合
操作符
一元操作符
递增++、递减--
加+、减-
加+、减-
位操作符
布尔操作符
与:&&
或:||
非:!
或:||
非:!
乘性操作符
乘法:*
除法:/
求模:%
除法:/
求模:%
关系操作符
小于:<
大于:>
小于等于:<=
大于等于:>=
相等:==
不相等:!=
全等:===
不全等:!==
大于:>
小于等于:<=
大于等于:>=
相等:==
不相等:!=
全等:===
不全等:!==
语句
条件语句:if-else()
循环语句
do-while:至少执行一次
white:可能永远不会执行
for
for-in:可以用来枚举对象的属性
white:可能永远不会执行
for
for-in:可以用来枚举对象的属性
break:立即跳出循环
continue:跳出本次循环
continue:跳出本次循环
switch-case:控制流语句
label:添加标签
with:将代码的作用域设置在特定的对象中
函数 function
arguments:参数
不能实现重载
JavaScript实现
三部分:核心ECMAScript;文档对象模型DOM;浏览器对象模型BOM
ECMAScript
ECMAScript是由 ECMA-262 定义的
ECMA-262 定义了语法、类型、语句、关键字、保留字、操作符、对象
ECMAScript 版本
第一版:
1、删除浏览器代码
2、支持 Unicode 标准,支持多语言
3、对象变成了与平台无关
1、删除浏览器代码
2、支持 Unicode 标准,支持多语言
3、对象变成了与平台无关
第二版:
为了与 ISO/IEC-16262保持严格一致
没有其他任何 CRUD 操作
为了与 ISO/IEC-16262保持严格一致
没有其他任何 CRUD 操作
第三版:
真正的修改,字符串、错误定义、数值输出,正则,
控制语句、try-catch异常处理、国际化等。
这一版是真正的编程语言。
真正的修改,字符串、错误定义、数值输出,正则,
控制语句、try-catch异常处理、国际化等。
这一版是真正的编程语言。
第四版:
ECMA TC39出台的标准跨度太大,此版标准被放弃
TC39下属的一个小组提出 ECMAScript 3.1 标准
ECMA TC39出台的标准跨度太大,此版标准被放弃
TC39下属的一个小组提出 ECMAScript 3.1 标准
第五版:
TC39提出的ECMAScript 3.1 成为第五版,
于2009年12月3日正式发布
TC39提出的ECMAScript 3.1 成为第五版,
于2009年12月3日正式发布
ECMAScript 的兼容
1、支持 ECMA-262 的语法、类型、关键字、保留字、操作符、对象;
2、支持 Unicode 标准
即:可以在 ECMAScript 基础上开发新语言。
2、支持 Unicode 标准
即:可以在 ECMAScript 基础上开发新语言。
web 浏览器对 ECMAScript 的支持
文档对象模型 DOM
把整个页面映射为一个多层节点结构
浏览器对象模型 BOM
处理浏览器窗口和框架
BOM 支持一下扩展:
1、弹出新浏览器窗口
2、移动、缩放、关闭浏览器窗口
3、navigatior 对象
4、locationn 对象
5、screen 对象
6、对 cookies 的支持
7、XMLHttpRequest、ActiveXObject 等自定义对象
........
1、弹出新浏览器窗口
2、移动、缩放、关闭浏览器窗口
3、navigatior 对象
4、locationn 对象
5、screen 对象
6、对 cookies 的支持
7、XMLHttpRequest、ActiveXObject 等自定义对象
........
BOM:浏览器对象模型
window 对象
全局作用域
在网页中定义的任何一个对象、变量和函数都会变成 window 对象的属性和方法
窗口关系及框架
多个 window 对象保存在 frames 集合中,
可以通过数值索引访问 window 对象,如:window.frames[0]
可以通过数值索引访问 window 对象,如:window.frames[0]
top 对象:始终指向最高(最外)层框架,也就是浏览器窗口
parent 对象:指向当前框架的直接上层框架
窗口位置
页面可见区域的距离
screenLeft
screenTop
移动
moveTo(x,y):x 和 y 表示坐标值
moveBy(x,y):x 和 y 表示移动的像素大小
窗口大小
返回浏览器窗口本身的尺寸
innerWidth
innerHeight
该页面的视图区域大小(不加边框)
outerWidth
outerHeight
调整窗口大小
resizeTo(x,y):x 和 y 表示新的宽度和高度
resizeBy(x,y):接收新窗口与原窗口的宽度和高度差
导航和打开窗口
window.open(url,name,features,replace):
既可以导航,也可以打开新的窗口
url:要加载的 url 地址
name:窗口目标
feature:表示窗口都显示哪些特征
replace:是否取代历史记录的布尔值
既可以导航,也可以打开新的窗口
url:要加载的 url 地址
name:窗口目标
feature:表示窗口都显示哪些特征
replace:是否取代历史记录的布尔值
超时调用和间歇调用
超时调用
setTimeout(code,millisec)
code:要执行的 js 代码
millisec:等待的毫秒数
code:要执行的 js 代码
millisec:等待的毫秒数
clearTimeout(id_of_settimeout):取消超时调用
id_of_setTimeout:由 setTimeout 返回的 id 值
id_of_setTimeout:由 setTimeout 返回的 id 值
间歇调用
setInterval():同上
clearInterval():同上
系统对话框
alter():只有 确定 按钮,
常用于错误提示
常用于错误提示
confirm():包含取消和确认两个按钮
可以获取用户是否执行给定的操作
可以获取用户是否执行给定的操作
prompt():包含文本框、取消和确认按钮
可以获取用户输入的信息
可以获取用户输入的信息
location 对象
属性
hash:返回 URL 的 hash
host:返回服务器名称和端口号
hostname:返回不带端口号的服务器名称
href:返回当前页面的完整 URL
pathname:返回 URL 的目录/文件名
port:返回 URL 指定的端口号
protocol:返回页面使用的协议
search:返回 URL 的查询字符串
方法
location.replace():没有“后退”按钮
location.reload()
参数为空:可能从缓存中加载
参数为 true:从服务器重新加载
navigator 对象
属性和方法:略
检查插件
非 IE 浏览器:plugins数组
IE 浏览器:ActiveXObject类型
screen 对象
history 对象
属性
length:返回浏览器历史记录的 URL 数量
方法
go():在历史记录中任意跳转,正值表示前进,负值表示后退
forward():前进一页
back():后退一页
0 条评论
下一页