模块导入

导出声明
  • 定义时声明

    在定义声明函数、类时不用加分号

    // 导出数组
    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的更多相关文章

  1. 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架构模式,可 ...

  2. python下的web服务器模块

    python下的web服务模块有三种: BaseHTTPServer: 提供基本的Web服务和处理器类,分别是HTTPServer和BaseHTTPRequestHandler SimpleHTTPS ...

  3. web.py模块使用

    web.py模块 import time import web urls=("/",'hello') class hello(): def GET(self): return (t ...

  4. web功能模块测试用例(模板)

    web功能模块测试用例(模板): https://wenku.baidu.com/view/4ada3464ddccda38376baff8.html 如图所示:

  5. 六个前端开发工程师必备的Web设计模式/模块资源

    Yahoo的设计模式库 Yahoo的设计模式库包含了很多可以帮助开发设计人员解决遇到的问题的资源,包括开发中常常需要处理的导航,互动效果及其布局网格等大家常用的组件和模块 响应式设计模式库 这个响应式 ...

  6. 响应式Web初级入门

    本文来自我的前端博客,原文地址:http://www.hacke2.cn/about-responsive/ 跨终端时代的到来 当你乘坐各种交通工具(公交.地铁.轻轨.火车)时你会发现,人们都个个低下 ...

  7. 六个前端开发工程师必备的Web设计模式/模块资源(转)

    [导读] Yahoo的设计模式库Yahoo的设计模式库包含了很多可以帮助开发设计人员解决遇到的问题的资源,包括开发中常常需要处理的导航,互动效果及其布局网格等大家常用的组件和模块响应式设计模式库这个响 ...

  8. 应用web框架模块设计三国演义篇--转至微博

    从事web开发已经10年时间,近几年也一直从事微博应用产品的研发.从原生php写网站到使用cms bbs整合的大型站点,从使用各种流行的开源开发框架到成熟稳定的平台级框架下做研发.这期间对应用型web ...

  9. .net web初级工程师教程

    序 这份教程,只针对正在努力找工作的初级.net web工程师,软件这行,刚入门时找工作是个坎,希望教程对各位有帮助. 教程将通过一个实际项目,简单明了地完整呈现,在实际工作中,工程师都做些什么及怎么 ...

  10. web前端----JavaScript的BOM

    一.引入 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和 ...

随机推荐

  1. ByPass

    WebShell-ByPass php一句话木马 <?php eval($_REQUEST['a']]);?> 拦截进行替换 替换eval() assert() 替换$_REQUEST[' ...

  2. 题解 AT2361 [AGC012A] AtCoder Group Contest

    \(\sf{Solution}\) 显然要用到贪心的思想. 既然最终的结果只与每组强度第二大选手有关,那就考虑如何让他的值尽可能大. 其实,从小到大排个序就能解决,越靠后的值越大,使得每组强度第二大选 ...

  3. JS常见问题总结

    1. 什么是 JavaScript ? JavaScript 是一种具有面向对象的.解释型的.基于对象和事件驱动的.跨平台的.弱类型的程序设计语言 2. JavaScript 与 ECMAScript ...

  4. GY91(MPU9250 + BMP280)惯性传感器开发指南

    目录 参考资料 I2C 设备ID 关键数据读取 MPU6500:读取加速度数据&换算单位 BMP280: 读取温度和气压信息 & 单位换算 推荐库 参考资料 参考资料说明: 用户手册时 ...

  5. 【Azure 环境】Azure 云环境对于OpenSSL 3.x 的严重漏洞(CVE-2022-3602 和 CVE-2022-3786)的处理公告

    问题描述 引用报告:(OpenSSL3.x曝出严重漏洞 : https://www.ctocio.com/ccnews/37529.html ) 最近OpenSSL 3.x 爆出了严重安全漏洞,分别是 ...

  6. chrome工具调试

    项目调试的困境 程序开发总会遇到各种各样的问题,为什么实际结果和预期结果不一致? 这个时候如果能深入程序内部抽丝剥茧去一探究竟再好不过! 而chrome工具是前端开发的杀手锏,经常听到的一句话是: 出 ...

  7. hadoop配置day01

    hadoop 安装jdk 配置文件: sudo vim /etc/profile 配置文件: export JAVA_HOME=/home/hadoop/jvm/jdk1.8.0_341 export ...

  8. 2022极端高温!机器学习如何预测森林火灾?⛵ 万物AI

    作者:ShowMeAI编辑部 声明:版权所有,转载请联系平台与作者并注明出处 收藏ShowMeAI查看更多精彩内容 今年夏天,重庆北碚区山火一路向国家级自然保护区缙云山方向蔓延.为守护家园,数万名重庆 ...

  9. ansible回调插件介绍(待完成)

    简介 ansible回调插件(callback plugins)允许为事件添加一些额外响应.这里的事件包括了执行任务(task)的结果,例如(ok.failed.unreachable.skipped ...

  10. CLR、CLS、CTS概述

    在学习.NET的过程中,都会不可避免地接触到这三个概念,那么这三个东西是什么以及它们之间的关系是怎样的呢?任何编程语言,如果想要在.NET CLR上执行,就必需提供一个编译器,将此语言的程序编译成.N ...