热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript基础之ECMAScript、DOM和BOM【多测师】

javascript之基础内容javascript是前端开发的必备技能jQuery是javascript的非常有名且最常用的框架javascript的IDE工具有WebStorm和

Javascript之基础内容Javascript是前端开发的必备技能 jQuery是Javascript的非常有名且最常用的框架
Javascript的IDE工具有WebStorm和visual studio Code菜鸟教程地址:
http://www.runoob.com/js/js-tutorial.html

Javascript的目录:
一、Javascript基础(1)基本概念  https://juejin.im/post/5ab09965f265da2378401992
二、Javascript基础(2)操作符、数组、字符串 https://juejin.im/post/5ab84f98f265da238d50b206
三、Javascript基础(3)对象和函数 https://juejin.im/post/5ab1e827518825188038ced9
四、Javascript基础(4)基本的DOM操作 https://juejin.im/post/5ab1b85ef265da23870eb46a
五、Javascript基础(5)IDE与调试 https://juejin.im/post/5ab48e6ef265da2391480be4

一、Javascript的组成: 由三部分组成
ECMAScript:Javascript的核心,简写:es,描述了语言的基本语法(var、for、if、array等)和数据类型(number、string、boolean、undefined、null、object、Symbol)
DOM:是 HTML 的应用程序接口(API),DOM 将把整个页面规划成由节点层级构成的文档。用 DOM API 可以轻松地操作HTML元素(getElementById、childNodes、appendChild、 innerHTML)。
BOM:对浏览器窗口进行访问和操作,例如弹出新的浏览器窗口,移动、改变和关闭浏览器窗口,提供详细的网络浏览器信息(navigator object),详细的页面信息(location object),详细的用户屏幕分辨率的信息(screen object),对COOKIEs的支持等等。


Javascript注释

Javascript注释由两部分组成:
  • 单行注释:

// 单行注释

  • 单行注释:

/*    多行注释    不能嵌套使用*/
Javascript引入方式

script标签可以有多个,按顺序执行
  • 外部引入 .js 文件:

 

  • 内部添加js代码:


 

Javascript输出方式

  • 页面输出:

document.write('hello world');

  • 控制台输出:

console.log('hello world');

  • 提示框输出:

alert('hello world');
Javascript标识符作用: 用来给变量、函数等命名

规则:
  • 由字母、数字、下划线、$组成

  • 不能以数字开头

  • 不能使Javascript中的关键字和保留字
    保留字:

     

     



  • 关键字:

  • 区分大小写

  • 遵循驼峰命名原则

  • 见名知意


Javascript数据类型

基本数据类型
  • 数字(Number)

    • NaN: 表示不是数字,当运算操作符错误的时候,一般会得到NaN

    • Infinity: 表示无穷大或无穷小,数字除以0得到Infinity

    • 浮点数和整数

    • 特殊的数字类型

 

  • 字符串(String)

    特点:

     

    • 单引号 或者 双引号 引起来的 是字符串

    • 两个字符串相加不是运算,而已字符串的拼接

    • 字符串加数字,先将数字转化为字符串,再进行拼接

 

  • 布尔值(Boolean)

    包括 true 和 false,常用在判断语句

    falsy值:
    console.log(new Boolean());         // false

    • 数字 0

    • NaN

    • ' '(空字符串)

    • false

    • undefined

    • null

  • console.log(new Boolean(0));        // false

  • console.log(new Boolean(null));     // false

  • console.log(new Boolean(""));       // false

  • console.log(new Boolean(false));    // false

  • console.log(new Boolean(NaN));      // false

  • truthy值: 除了falsy值就是truthy
    console.log(new Boolean(1));                // true

  • console.log(new Boolean(true));             // true

  • console.log(new Boolean('true'));           // true

  • console.log(new Boolean('false'));          // true

  • console.log(new Boolean('Bill Gates'));     // true

  • Undefined
    声明但未初始化的变量会得到undefined
    var a;console.log(a); // undefined



  • Null
    一个没有任何引用的空对象
    var a = null;console.log(typeof a); // object



  • Symbol
    凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突
    let a = Symbol('a');

  • let b = Symbol('a');

  • typeof s; // Symbol

  • console.log(a === b); // false



非基本数据类型
  • Object

    • Array

    • Function



判断数据类型

  • typeof + 变量名
    typeof 不能正确判断引用数据类型,如数组:
    typeof [] => 'Object'  



  • 变量名 + instanceof String/Number/Boolean/Object/Array/Function
    instanceof 不能判断 null 和 undefined(报错), 以及用字面量方式创建的 基本数据类型(必须用new 关键字去创建基本数据类型)
    '1' instanceof String  // false

  • new String('1') instanceof String // true



  • 变量名 + .constructor === String/Number/Boolean/Array/Function/Object
    constructor 不能判断 null 和 undefined(报错), 下面这种情况也不能正确判断
    function Fn(){};Fn.prototype=new Array();

  • var f=new Fn();

  • console.log(f.constructor===Fn);  // false

  • console.log(f.constructor===Array); // true



  • Object.prototype.toString.call(变量名) === '[object String/Number/Array/Date/Function/Object]'
    判断数据类型最可靠的方法
    var a = Object.prototype.toString;

  • console.log(a.call("aaa"));         // [object String]

  • console.log(a.call(1));             // [object Number]

  • console.log(a.call(true));          // [object Boolean]

  • console.log(a.call(null));          // [object Null]

  • console.log(a.call(undefined));     // [object Undefined]

  • console.log(a.call([]));            // [object Array]

  • console.log(a.call(function() {})); // [object Function]

  • console.log(a.call({}));            // [object Object]



变量和常量

变量
  • 用var 或者 let 定义,如var num = 0

  • 程序运行期间是可以改变的

常量
  • 用const定义,如const num = 0

  • 程序运行期间是不可以改变的(除object类型)



*可以参考的资料:
https://www.cnblogs.com/2010master/p/5824215.html
https://images2015.cnblogs.com/blog/997049/201608/997049-20160830235030324-1067760196.jpg
常识:
Javascript 没有输入或输出的概念。它是一个在宿主环境(host environment)下运行的脚本语言,任何与外界沟通的机制都是由宿主环境提供的. DOM文档对象模型(Document Object Model) BOM(Browser Object Model)即浏览器对象模型。 BOM提供了独立于内容 而与浏览器窗口进行交互的对象; 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window;  BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性;BOM缺乏标准,Javascript语法的标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是Netscape浏览器标准的一部分
转载自

https://juejin.im/post/5ab09965f265da2378401992


推荐阅读
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 在本文中,我们将详细介绍如何构建一个用于自动回复消息的XML类。当微信服务器接收到用户消息时,该类将生成相应的自动回复消息。以下是具体的代码实现:```phpclass We_Xml { // 代码内容}```通过这个类,开发者可以轻松地处理各种消息类型,并实现高效的自动回复功能。我们将深入探讨类的各个方法和属性,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
author-avatar
覃思慧_419
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有