zoukankan      html  css  js  c++  java
  • JavaScript基础之ECMAScript、DOM和BOM【多测师】

    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 文件:

    <script src='other.js'> // 要注意src指向的文件 路径    
    // 如果链接了外部js文件,script标签内的代码就不执行了    
    // 此处不能添加js代码</script> 

    • 内部添加js代码:


    <script>    
    console.log('hello world'); // 控制台输出    
    alert('hello world'); // 提示框输出
    </script> 

    JavaScript输出方式

    • 页面输出:

    document.write('hello world');

    • 控制台输出:

    console.log('hello world');

    • 提示框输出:

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

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

    • 不能以数字开头

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

      <ignore_js_op> 

       



    • 关键字:

    • <ignore_js_op>
    • 区分大小写

    • 遵循驼峰命名原则

    • 见名知意


    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

  • 相关阅读:
    勿忘初心
    欧拉函数与数论的结合UVA11426
    法雷级数
    欧拉函数及其应用
    poyla计数问题
    组合计数问题中容斥原理的应用
    数学问题当中的一些基本计数问题
    HDU4642博弈好题
    KMP算法在字符串中的应用
    UVA11722概率问题之线性规划
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/12865256.html
Copyright © 2011-2022 走看看