JavaScript的介绍和引入方式

一、JS是概念

  • JavaScript轻量级 、弱类型、解释性 、脚本语言

    语言 功能
    结构层 HTML 搭建结构、放置部件、描述语义
    样式层 CSS 美化网页、实现布局
    行为层 JavaScript 实现交互效果、数据收发、表单验证等
  • 1997 年,欧洲计算机制造商协会(ECMA)颁布了 JavaScript 的标准,命名为 ECMAScript。
  • ECMAScript 简称 ES,JavaScript 简称 JS。
    • ES6版本是JavaScript非常重要的一个历史版本
    • JavaScript 实现了 ECMAScript
    • ECMAScript 规范了 JavaScript

二、JS的组成

  • JavaScript 是由 ECMAScript,DOM 和 BOM 三者组成的。
    1. ECMAScript: 定义了JavaScript 的语法规范,描述了语言的基本语法和数据类型
    2. DOM (Document Object Model): 文档对象模型
      • 有一套成熟的可以操作页面元素的API,通过 DOM 可以操作页面中的元素。比如: 增加个 div,减少个 div,给 div 换个位置等
        • API:
          • application programming interface 的简写;
          • 翻译:应用程序编程接口;大白话:别人写好的代码,或者编译好的程序,提供给你使用,就叫作api
    3. BOM (Browser Object Model): 浏览器对象模型
      • 有一套成熟的可以操作浏览器的API,通过 BOM 可以操作浏览器。比如: 弹出框、浏览器跳转、获取分辨率等

三、JavaScript引入方式

  • JavaScript的语法形式类似于css语法形式
  1. 行内式

    • 行内式在html标签中直接定义js代码,
    • 可维护性(改着方便) 和可操作性(用着方便) 非常低
    js 复制代码
    <input type="button" value="按钮" onclick="alert('hello world')" />
  2. 内部式

    • 计算机程序代码默认的执行顺序是从上至下、从左至右( 文档流顺序 )
    • script标签和style标签理论上可以定义在html文件的任意位置
    • 因为代码的执行顺序问题,js程序要操作html标签,就要先定义生成html标签
    • 实际项目中一般都将script标签,也就是js程序,定义在body标签中、html标签下
    js 复制代码
      <!-- 一般情况下script标签,也就是js程序都是定义在html标签后-->
      <script>
        // 在script标签中,对div标签进行交互操作
        const oDiv = document.querySelector('div');
    
        oDiv.addEventListener( 'click' , function(){
          this.style.color = 'red';
          this.style.width = '400px';
          this.style.height = '200px';
          this.style.background = 'pink';
        });
      </script>
  3. 外部式

    • 外部js文件中定义js代码
    • 通过script标签src属性导入外部js文件
    • 在导入外部文件的同时,会直接执行其中定义的js代码程序
    js 复制代码
    • script标签如果定义了src属性,JavaScript代码的执行机制执行原理就规定,定义了src的script标签只会执行外部式代码程序,不会再执行内部式代码程序
    js 复制代码
       <script src="./main.js"></script>
    
      <script src>
        // 定义在script标签中的内部式代码
        // 但是script标签定义了src属性,这个内部式代码就不会执行了
        window.alert('我是内部式程序');
      </script>
  • 总结:理论上script标签可以定义在任意位置,但是因为代码的执行顺序问题,一般script标签标签定义在html标签下
相关推荐
华玥作者5 小时前
[特殊字符] VitePress 对接 Algolia AI 问答(DocSearch + AI Search)完整实战(下)
前端·人工智能·ai
Mr Xu_6 小时前
告别冗长 switch-case:Vue 项目中基于映射表的优雅路由数据匹配方案
前端·javascript·vue.js
前端摸鱼匠6 小时前
Vue 3 的toRefs保持响应性:讲解toRefs在解构响应式对象时的作用
前端·javascript·vue.js·前端框架·ecmascript
sleeppingfrog6 小时前
zebra通过zpl语言实现中文打印(二)
javascript
lang201509286 小时前
JSR-340 :高性能Web开发新标准
java·前端·servlet
好家伙VCC7 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
未来之窗软件服务7 小时前
未来之窗昭和仙君(六十五)Vue与跨地区多部门开发—东方仙盟练气
前端·javascript·vue.js·仙盟创梦ide·东方仙盟·昭和仙君
baidu_247438617 小时前
Android ViewModel定时任务
android·开发语言·javascript
嘿起屁儿整8 小时前
面试点(网络层面)
前端·网络
VT.馒头8 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript