首页 > 编程语言 >JavaScript

JavaScript

时间:2024-09-29 21:51:52浏览次数:12  
标签:对象 JavaScript JS HTML var 属性

什么是 JavaScript?

  • JavaScript (简称: JS) 是一门跨平台、面向对象的脚本语言 (脚本语言是不需要编译,直接通过浏览器的解释就可以运行)。是用来控制网页行为的,它能使网页可交互。
  • JavaScript 和 Java 是完全不同的语言,不论是概念还是设计。但是基础语法类似。
  • JavaScript 在1995 年由 Brendan Eich 发明,并于1997 年成为 ECMA 标准。
  • ECMAScript6(ES6) 是最新的 JavaScript 版本(发布于2015年)。

一、JS 引入方式

1. 内部脚本

将 JS 代码定义在 HTML 页面中。

  • JavaScript 代码必须位于<script></script>标签之间。

  • 在HTML文档中,可以在任意地方,放置任意数量的<script>

  • 一般会把脚本置于<body>元素的底部,可改善显示速度。

    <script>
    	alert("Hello javaScript")
    </script>
    

2. 外部脚本

将 JS 代码定义在外部 JS 文件中,然后引入到 HTML 页面中。

  • 外部 JS 文件中,只包含 JS 代码,不包含<script>标签。

  • <script> 标签不能自闭合。

    上述例子更改为:

    <script src= "js/demo.js"></script>
    
    alert("Hello javaScript")
    

二、JS 基础语法

1. 书写语法

  • 区分大小写: 与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的。
  • 每行结尾的分号可有可无
  • 注释:
    单行注释: // 注释内容
    多行注释: /* 注释内容 */
  • 大括号表示代码块

2. 输出语句

  • 使用 window.alert() 写入警告框
  • 使用 document.write() 写入 HTML 输出
  • 使用 console.log() 写入浏览器控制台

3. 变量

  • JavaScript 中用 var 关键字 (variable 的缩写) 来声明变量。

  • JavaScript 是一门弱类型语言,变量可以存放不同类型的值。

    • 特点1:var 作用于比较大,是全局变量。

      let 是局部变量,不能重复定义)(const 是常量,不能被改变)

    • 特点2:var 可以重复定义的,后面定义的会把前面定义的覆盖。

    var a = 20;
    
    a = "张三";
    
  • 变量名需要遵循如下规则:

    • 组成字符可以是任何字母、数字、下划线 (_) 或美元符号 ($)
    • 数字不能开头
    • 建议使用驼峰命名

4. 数据类型、运算符、流程控制语句

  • 数据类型:JavaScript 中分为原始类型引用类型,使用 typeof 运算符可以获取数据类型。

    (1) 原始类型

    • number : 数字(整数、小数、NaN(NotaNumber))

    • string : 字符串,单双引皆可

    • boolean : 布尔。true,false

    • null : 对象为空。

      为什么 typeof 运算符对于 nul 值会返回"Object"。

      这实际上是 javaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。

    • undefined : 当声明的变量未初始化时,该变量的默认值是undefined

    (2)引用类型

  • 运算符

    • 算术运算符: +,-,*,/,%,++,--

    • 赋值运算符: =,+=,-=,*=,/=,%=

    • 比较运算符: >,<,>=,<=,!=,==,===

      == 会进行类型转换。

      === 不会进行类型转换。

    • 逻辑运算符: &&,||,!

    • 三元运算符: 条件表达式 ? true value : false value

  • 类型转换

    • 字符串类型转为数字
      • parseInt 将字符串字面值转为数字。如果字面值不是数字,则转为NaN。
    • 其他类型转为 boolean:
      • Number: 0NaNfalse,其他均转为 true。
      • String: 空字符串false,其他均转为 true。
      • Null 和 undefined: 均转为 false。
  • 流程控制语句

    参考官方文档

    • if…else if …else…
    • switch
    • for
    • while
    • do … while

三、JS 函数

1. 介绍

函数(方法)是被设计为执行特定任务的代码块。

2. 定义

JavaScript 函数通过 function 关键字进行定义,语法为:

定义方式一:

function functionName(参数1,参数2..){
    //要执行的代码
}

定义方式二:

var functionName =function(参数1,参数2..){
	//要执行的代码
}

3. 注意

  • 形式参数不需要类型。因为JavaScript是弱类型语言
  • 返回值也不需要定义类型,可以在函数内部直接使用return返回即可

4. 调用

函数名称(实际参数列表)

四、JS 对象

1. JS基础对象

  • Array 对象用于定义数组

    javaScript 中的数组相当于Java 中集合,数组的长度是可变的,而 JavaScript 是弱类型,所以可以存储任意的类型的数据

    • 定义:

      • 方式一:var 变量名 = new Array(元素列表);
      • 方式二:var 变量名 = [元素列表];
    • 访问:

      • arr[索引] = 值;
    • 属性:

      • length 设置或返回数组中元素的数量。
    • 方法:

      • forEach() 遍历数组中的每个有值的元素,并调用一次传入的函数。

        **箭头函数(ES6): **是用来简化函数定义语法的。

        具体形式为: (...) => {...},如果需要给箭头函数起名字: var xxx = (...) => {...}

      • push() 将新元素添加到数组的末尾,并返回新的长度。

      • splice() 从数组中删除元素

  • String

    • 定义:

      • 方式一:var 变量名=new String("…");
      • 方式二:var 变量名="...";
    • 属性:

      • length 字符串的长度。
    • 方法:

      • charAt() 返回在指定位置的字符。
      • indexOf() 检索字符串。
      • trim() 去除字符串两边的空格。
      • substring() 提取字符串中两个指定的索引号之间的字符。(含头不含尾
  • 自定义对象

    • 定义:

      var 对象名 = {
      	属性名1:属性值1,
      	属性名2:属性值2,
      	属性名3:属性值3,
      	函数名称:function(形参列表){}
      	//或者 函数名称(形参列表){}
      };
      
    • 调用:

      对象名.属性名;
      对象名.函数名();

  • JSON

    概念: javaScript Object Notation,javaScript 对象标记法。JSON 是通过 JavaScript 对象标记法书写的文本

    • 定义:var 变量名 = '{"key1" : value1, "key2" : value2 }';
    • JSON 字符串转为 JS 对象
      var jsObject = JSON.parse(userStr);
    • JS 对象转为 JSON 字符串
      var jsonStr = JSON.stringify(jsObject);

2. BOM对象

概念: Browser Object Model 浏览器对象模型,允许 JavaScript 与浏览器对话,JavaScript 将浏览器的各个组成部分封装为对象。

  • Window: 浏览器窗口对象

    • 获取:直接使用window,其中 window.可以省略。

      window.alert("Hello window");alert("Hello window");

    • 属性:

      (1) history: 对 History 对象的只读引用。

      (2) location: 用于窗口或框架的 Location 对象。

      (3) navigator: 对 Navigator对象的只读引用。

    • 方法:

      (1) alert(): 显示带有一段消息和一个确认按钮的警告框。

      (2) confirm(): 显示带有一段消息以及确认按钮和取消按钮的对话框。如果是确认返回值是true,如果是取消返回值是false。

      (3) setlnterval(): 按照指定的周期(以毫秒计)来调用函数或计算表达式。

      (4) setTimeout(): 在指定的毫秒数后调用函数或计算表达式。延迟指定时间执行一次。

  • Location: 地址栏对象

    • 获取:window.location.属性;location.属性;
    • 属性:href: 设置或返回完整的URL。location.href = "https://www.itcast.cn";

3. DOM对象

概念: Document Object Model,文档对象模型。

将标记语言的各个组成部分封装为对应的对象:

  • Document: 整个文档对象
    • 根据id属性值获取,返回单个Element对象
      var h1 = document.getElementById('h1');
    • 根据标签名称获取,返回Element对象数组
      var divs = document.getElementsByTagName('div');
    • 根据name属性值获取,返回Element对象数组
      var hobbys = document.getElementsByName('hobby');
    • 根据class属性值获取,返回Element对象数组
      var class = document.getElementsByClassName('cls');
  • Element: 元素对象
  • Attribute: 属性对象
  • Text: 文本对象
  • Comment: 注释对象

JavaScript 通过 DOM,就能够对 HTML 进行操作:

  • 改变 HTML 元素的内容
  • 改变 HTML 元素的样式(CSS)
  • 对 HTML DOM 事件作出反应
  • 添加和删除 HTML 元素

五、JS 事件监听

事件: HTML事件是发生在HTML元素上的“事情”。比如:

  • 按钮被点击
  • 鼠标移动到元素上
  • 按下键盘按键

事件监听: JavaScript可以在事件被侦测到时 执行代码。

1. 事件绑定

方式一: 通过 HTML 标签中的事件属性进行绑定

<input type="button" onclick="on()" value="按钮1">
<script>
    function on(){
    	alert('我被点击了!);
    }
</script>

方式二:通过 DOM 元素属性绑定

<input type="button" id="btn" value="按钮2">
<script>
document.getElementById('btn').onclick=function(){
    alert('我被点击了!);
    }
</script>

2. 常见事件

在这里插入图片描述

标签:对象,JavaScript,JS,HTML,var,属性
From: https://blog.csdn.net/Lauxuxu/article/details/142638226

相关文章

  • JavaScript初学必备 之 初识ajax
    今日推荐歌曲:遇见一、ajax介绍1、学习前提需要有以下基础:HTML和CSS基础JavaScript基础2、什么是ajax?(1)、全称ajax===asyncJavascriptandxml(ajax===异步JavaScript和XML),ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。async:异步x......
  • JavaScript深拷贝与浅拷贝
    由于对象采用的是引用赋值。所以直接用“=”,修改属性的时候也会将原来的变量改变掉。因此,就有了浅拷贝与深拷贝用{...obj}和object.assign表示浅拷贝,其只拷贝外围对象的一层,而不会拷贝多层。 方法二:使用Object.assign  深拷贝的实现其一是通过递归实现拷贝。其二lod......
  • JavaScript 条件循环语句
    ‌条件循环语句‌是编程中的一种控制结构,它允许程序根据特定条件重复执行一段代码,直到满足某个条件为止。这种结构通常包括条件语句和循环语句,它们共同作用,使得程序能够根据预设的条件来决定是否继续执行循环体中的代码。for循环:适用场景:当知道循环次数时(循环次数已知)。特......
  • javascript 数组对象解构
    传统的写法不好记忆,书写麻烦,此时可以使用结构赋值的方法让代码更加简洁。数组结构是将数组中的单元值快速批量赋值给一系列变量的简介语法。变量的顺序对应数组单元值位置一次进行赋值操作。如下:应用一:交换两个变量Js前面有那种情况需要加分号。(不加分号解析器认为和上......
  • Javascript编译原理
    JavaScript的编译原理是一个复杂但有序的过程,主要涉及分词(词法分析)、解析(语法分析)、代码生成以及执行等阶段。以下是对JavaScript编译原理的详细解析:chrome编译流程 1.分词(词法分析)分词(Tokenizing)或词法分析(Lexing)是编译过程的第一步。在这个阶段,编译器将输入的源代码......
  • Javascript 一题搞懂 var 变量提升 & 函数声明提升!
    前置知识:在JavaScript中,“变量提升”(Hoisting)是指在代码执行之前,变量和函数声明会被提升到其所在作用域的顶部。对于使用var关键字声明的变量,会发生变量提升现象。一、声明提升1.变量声明提升:无论var变量在代码中的何处声明,它都会被提升到其所在的函数作用域......
  • 事件【JavaScript】
    1.事件事件是用户或浏览器动作的表示,JavaScript中的一切交互都是通过事件来处理的。2. 事件冒泡(EventBubbling)事件冒泡是指事件从最具体的元素(即触发事件的元素)开始触发,然后逐级向上传播到较为不具体的元素(即该元素的父元素、祖先元素),直到到达最顶层的元素(通常是documen......
  • JavaScript 网页设计案例详解( 最新技术趋势)
    前言随着JavaScript生态系统的不断发展和浏览器支持的不断完善,2024年的前端开发技术已经变得更加现代化和高效。JavaScript在网页设计中的应用不再局限于基础的交互,它与最新的Web标准、API结合,为开发者带来了丰富的功能和出色的性能优化。本文将通过一个网页设计案例,结......
  • JavaScript 闭包
    什么是闭包?简单理解:闭包=内层函数+外层函数的变量。正如前面所说的作用域链也会涉及到闭包,如下:leta=6;//全局作用域functionf(){a=7;//父级作用域functiond(){a=8;//自己的作用域console.log(a);}d();}f(); 闭包的官方......
  • JavaScript 网页设计经典案例代码全览
    一、响应式导航栏HTML结构:<nav><!--这是一个导航栏的容器--><divclass="logo">YourLogo</div><!--用于显示logo的div元素--><divclass="menu-icon">&#9776;</div><!--显示菜单图标(通常用于触发菜单的显示/隐藏)-->......