Web初级——模块和Bom
模块导入
导出声明
定义时声明
在定义声明函数、类时不用加分号
// 导出数组
export let months = ['Jan', 'Feb', 'Mar','Apr', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
// 导出 const 声明的变量
export const MODULES_BECAME_STANDARD_YEAR = 2015;
// 导出类
export class User {
constructor(name) {
this.name = name;
}
}
定义后声明
// say.js
function sayHi(user) {
alert(`Hello, ${user}!`);
}
function sayBye(user) {
alert(`Bye, ${user}!`);
}
export {sayHi, sayBye}; // 导出变量列表
导出为
...
export {sayHi as hi, sayBye as bye};
默认导出
类似于java的类导包,使得一个行为或者事件被封装为一个整体导出,即一个模块只做了一件事或者同一种类的事
// user.js
export default class User { // 只要添加“default”即可
constructor(name) {
this.name = name;
}
}
每个js文件只允许一个默认导出,所以在导入的时候直接声明文件位置,导入模块名可以自定义,这也导致了,可读性很差,所以有时候会有规范规定导入时的名字和默认模块名相同
别名Default
default用来区分默认导出和普通的命名导出
比如需要默认导出一个已经声明的函数或者类
function sayHi(user) {
alert(`Hello, ${user}!`);
}
export {sayHi as default}; // 和我们在函数前添加“export default”一样
导入声明
逐个导入
//main.js
import {sayHi,sayBye} from '模块文件位置';
全部导入
//main.js
import * as say from '模块文件位置';
say.sayHi('~');
导入为
//main.js
import {sayHi as Hi,sayBye as bye} from '模块文件位置';
Hi('~');
default别名
假如需要导入的模块文件有一个default模块和若干个命名模块,导入的时候就可以用别名来区分
//main.js
import {default as User, sayHi} from '模块文件位置';
new User('John');
如果想一次性全部导入这些,则可以用default属性来区分默认导入
//main.js
import * as user from '模块文件位置';
let User = user.default;
new User('John');
Bom(浏览器对象模型)
JavaScript的实现包括以下3个部分:
- 核心(ECMAScript):描述了JS的语法和基本对象。
- 文档对象模型 (DOM):处理网页内容的方法和接口
- 浏览器对象模型(BOM):与浏览器交互的方法和接口
window对象
bom中最重要的一个对象就是window对象,其他对象都是该对象的子对象
常用属性:
- pageXOffset 设置或返回当前页面相对于窗口显示区左上角的 X 位置。
- pageYOffset 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。
常用方法:
onload() 页面完全加载到浏览器时,触发
onscroll() 页面开始滚动时触发
onresize() 窗口发生大小变化时触发
setInterval() 按照指定的周期调用函数
open() 打开一个新的浏览器窗口或者查找一个已命名的窗口
console.log(window.pageXOffset)
console.log(window.pageYOffset)
window.onload=function () {
console.log("页面加载完毕")
}
window.onscroll=function () {
console.log("页面滚动")
}
window.onresize=function () {
console.log("页面改变大小")
}
window.setInterval(function () {
console.log("3s钟过去了")
},3000)

location对象
window.location对象:用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。在编写时可不使用 window 这个前缀。
常用属性:
location.herf = 'url地址'
location.hash 返回#号后面的字符串,不包含散列,则返回空字符串。
location.host 返回服务器名称和端口号
location.pathname 返回目录和文件名。 /project/test.html
location.port 返回URL中的指定的端口号,如URL中不包含端口号返回空字符串
location.search 返回?号后面的所有值。
location.portocol 返回页面使用的协议, http:或https。
console.log(location.hash)
console.log(location.host)
console.log(location.pathname)
console.log(location.port)
console.log(location.search)
console.log(location.protocol)

常用方法:
- href(): 设置或获取整个 URL 为字符串。
- reload() :重新加载页面地址。
- replace(): 重新定向URL,不会在历史记录中生成新纪录。
Navigator对象
navigator 对象包含有关访问者浏览器的信息
常用属性:
navigator.platform:操作系统类型;
navigator.userAgent:浏览器设定的User-Agent字符串。
navigator.appName:浏览器名称;
navigator.appVersion:浏览器版本;
navigator.language:浏览器设置的语言;
navigator.userAgent是最常用的属性,用来完成浏览器判断。
console.log(navigator.platform)
console.log(navigator.userAgent)
console.log(navigator.appName)
console.log(navigator.appVersion)
console.log(navigator.language)
console.log(navigator.userAgent)

screen对象
screen 对象包含有关用户屏幕的信息
常用属性:
- screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。
- screen.availHeight 属性返回访问者屏幕的高度,以像素计,减去界面特性,比如窗口任务栏。
history对象
history 对象包含浏览器的历史
常用方法:
- history.back() - 加载历史列表中的前一个 URL。返回上一页。
- history.forward() - 加载历史列表中的下一个 URL。返回下一页。
- history.go(“参数”) -1表示上一页,1表示下一页,或者具体页面的URL。
document对象
document存储了整个页面的文档信息,可以根据他获取一些元素甚至改变样式
常用属性:
- forms:代表页面中所有表单的集合 返回值是一个数组
常用方法:
- white():文档中打印信息
- whiteln():文档打印信息,自带换行
- getElementById():根据元素的id值获取页面元素
- getElementsByName():根据元素的name获取一组页面元素,返回值是数组
- getElementsByTagName():根据元素的名称获取一组页面元素,返回值是数组
- getElementsByClassName():根据元素的class值获取一组页面元素,返回值是数组

控制台打印

Web初级——模块和Bom的更多相关文章
- Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中的spring web MVC模块
spring framework中的spring web MVC模块 1.概述 spring web mvc是spring框架中的一个模块 spring web mvc实现了web的MVC架构模式,可 ...
- python下的web服务器模块
python下的web服务模块有三种: BaseHTTPServer: 提供基本的Web服务和处理器类,分别是HTTPServer和BaseHTTPRequestHandler SimpleHTTPS ...
- web.py模块使用
web.py模块 import time import web urls=("/",'hello') class hello(): def GET(self): return (t ...
- web功能模块测试用例(模板)
web功能模块测试用例(模板): https://wenku.baidu.com/view/4ada3464ddccda38376baff8.html 如图所示:
- 六个前端开发工程师必备的Web设计模式/模块资源
Yahoo的设计模式库 Yahoo的设计模式库包含了很多可以帮助开发设计人员解决遇到的问题的资源,包括开发中常常需要处理的导航,互动效果及其布局网格等大家常用的组件和模块 响应式设计模式库 这个响应式 ...
- 响应式Web初级入门
本文来自我的前端博客,原文地址:http://www.hacke2.cn/about-responsive/ 跨终端时代的到来 当你乘坐各种交通工具(公交.地铁.轻轨.火车)时你会发现,人们都个个低下 ...
- 六个前端开发工程师必备的Web设计模式/模块资源(转)
[导读] Yahoo的设计模式库Yahoo的设计模式库包含了很多可以帮助开发设计人员解决遇到的问题的资源,包括开发中常常需要处理的导航,互动效果及其布局网格等大家常用的组件和模块响应式设计模式库这个响 ...
- 应用web框架模块设计三国演义篇--转至微博
从事web开发已经10年时间,近几年也一直从事微博应用产品的研发.从原生php写网站到使用cms bbs整合的大型站点,从使用各种流行的开源开发框架到成熟稳定的平台级框架下做研发.这期间对应用型web ...
- .net web初级工程师教程
序 这份教程,只针对正在努力找工作的初级.net web工程师,软件这行,刚入门时找工作是个坎,希望教程对各位有帮助. 教程将通过一个实际项目,简单明了地完整呈现,在实际工作中,工程师都做些什么及怎么 ...
- web前端----JavaScript的BOM
一.引入 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和 ...
随机推荐
- React + Springboot + Quartz,从0实现Excel报表自动化
一.项目背景 企业日常工作中需要制作大量的报表,比如商品的销量.销售额.库存详情.员工打卡信息.保险报销.办公用品采购.差旅报销.项目进度等等,都需要制作统计图表以更直观地查阅.但是报表的制作往往需要 ...
- 知识图谱顶会论文(ACL-2022) ACL-SimKGC:基于PLM的简单对比KGC
12.(2022.5.4)ACL-SimKGC:基于PLM的简单对比KGC 12.(2022.5.4)ACL-SimKGC:基于PLM的简单对比KGC 摘要 1.引言 2.相关工作 2.1 知识图补全 ...
- PX01关于手机屏IIC触摸调试学习笔记
相关文件下载: 上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.x ...
- Linux--多线程(二)
线程的同步和互斥 基本概念 概述:现在操作系统基本都是多任务的操作系统,同时有大量可以调度的实体在运行.在多任务操作系统当中,同时运行的多个任务可能: 都需要访问/使用同一种资源 多个任务之间有依赖关 ...
- 京东云开发者|ElasticSearch降本增效常见的方法
Elasticsearch在db_ranking 的排名又(双叒叕)上升了一位,如图1-1所示;由此可见es在存储领域已经蔚然成风且占有非常重要的地位. 随着Elasticsearch越来越受欢迎,企 ...
- iOS- 最全的真机测试教程
想要上架的同学请看:<iOS-最全的App上架教程> 因为最近更新了Xcode 8 ,证书的创建都大同小异,只是在Xcode 8中的设置有一些变化,我就在下面补充,如有什么疑问,请联系 ...
- 【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存
问题描述 在使用Azure Event Hub的SDK时候,常规情况下,发现示例代码中并没有SDK内部的日志输出.因为在Java项目中,没有添加 SLF4J 依赖,已致于在启动时候有如下提示: SLF ...
- UBOOT编译--- UBOOT全部目标的编译过程详解(九)
1. 前言 UBOOT版本:uboot2018.03,开发板myimx8mmek240. 2. 概述 本文接续上篇文章,采用自下而上的方法,先从最原始的依赖开始,一步一步,执行命令生成目标.这里先把上 ...
- UBOOT编译--- UBOOT编译过程目标依赖分析(八)
1. 前言 UBOOT版本:uboot2018.03,开发板myimx8mmek240. 2. 概述 本文采用自顶向下的方法,从顶层目标开始到最原始的依赖. 3. u-boot编译 uboot的编译分 ...
- AFL源码分析(一)
AFL源码分析(一) 文章首发于:ChaMd5公众号 https://mp.weixin.qq.com/s/E-D_M25xv5gIpRa6k8xOvw a.alf-gcc.c 1.find_as 这 ...