js的学习

news2024/11/26 6:58:39

什么是JavaScript?

JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,”它能使网页可交互。

JavaScript 和Java 是完全不同的语言,不论是概念还是设计。但是基础语法类似。

JavaScript在1995 年由 Brendan Eich 发明,并于 1997 年成为 ECMA 标准。

ECMAScript6(ES6)是最新的JavaScript版本(发布于 2015年)。

 JavaScript引入方式

内部脚本

将JS代码定义在HTML页面中

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

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

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

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


外部脚本

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

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

<script>标签不能自闭合

<script src="is/demo.js"></script>

JavaScript的基础语法

1.区分大小写:与Java一样,变量名、函数名以及其他一切东西都是区分大小写的

2.每行结尾的分号可有可无

3.注释:
单行注释://注释内容
多行注释:/* 注释内容 */

4.大括号表示代码块

//判断
if(count == 3){
alert(count);
}

输出语句

使用 window.alert()写入警告框

使用 document.write()写入 HTML 输出

使用 console.log()写入浏览器控制台

 代码样例

<script>
window.alert("Hello javaScript"); //浏览器弹出警告框
document.write("Hello javaScript"); //写入HTML,在浏览器展示
console.log("Hello javaScript");//写入浏览器控制台
</script>

运行结果

 变量

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

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

3.变量名需要遵循如下规则:
        组成字符可以是任何字母、数字、下划线(...)或美元符号($)
        数字不能开头
        建议使用驼峰命名

 数据类型

JavaScript中分为:原始类型 和引用类型

使用 typeof运算符可以获取数据类型:

var a = 20:;
alert(typeof a);
原始类型

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

string:字符串,单双引皆可

boolean:布尔。true,false

nul:对象为空

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

Symbol(ES6新增):表示唯一的标识符。

引用类型 
  1. 对象(Object):表示复杂数据结构,可以包含多个属性和方法。
  2. 数组(Array):是一种特殊的对象,用于存储多个值。
  3. 函数(Function):是一种特殊的对象,可以被调用执行。
  4. 日期(Date):表示日期和时间。
  5. 正则表达式(RegExp):用于匹配字符串的模式。
  6. Map:用于存储键值对的集合,其中键可以是任何数据类型。
  7. Set:用于存储唯一值的集合,其中值可以是任何数据类型。

原始类型在赋值时是按值传递的,而引用类型在赋值时是按引用传递的,这意味着当你将一个原始类型的变量赋值给另一个变量时,实际上是将值复制给了新变量;而当你将一个引用类型的变量赋值给另一个变量时,两个变量实际上指向同一个对象,改变其中一个变量的值也会影响另一个变量。

运算符

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

赋值运算符:=,+=,-=,*=,/=,%=
比较运算符:>,<,>=,<=,!=,==,==
逻辑运算符:&&,,!
三元运算符:条件表达式?true_value:false_value

 ==与===的区别

==会进行类型转换,===不会进行类型转换;

比如字符串:"10"与数字:10进行比较,==会先转换为相同类型,再进行比较,===不会进行转换,直接进行比较

var a = 10:
alert(a == "10"); //true
alert(a === "10"); //false
alert(a === 10);//true

控制流程语句

与java基本一样

if...else if ...else...
switch
for
while
do ... while

 函数

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

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

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

注意:

形式参数不需要类型。因为JavaScript是弱类型语言

返回值也不需要定义类型,可以在函数内部直接使用return返回即可

调用:函数名称(实际参数列表)

JS对象

Array

JavaScript 中 Array对象用于定义数组。

定义

var 变量名 =new Array(元素列表); //方式1

var 变量名 =[元素列表]; //方式2

var arr=new Array(1,2,3,4);//方式一

var arr =[1,2,3,4];//方式二

 访问

arr[ 索引]= 值;

arr[10]= "hello";

注意事项

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

Array常用属性

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

 Array常用方法

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

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

splice():从数组中删除元案。

注意:

forEach()遍历是遍历有值的元素,而for循环是全部遍历

String

String字符串对象创建方式有两种:

var 变量名=new String("...”);//方式一

var str = new string("Hello string");

var 变量名 ="…";//方式二

var str ="Hello string"

 String常用属性

length:字符串的长度。

  String常用方法

charAt():返回在指定位置的字符。

indexof():检索字符串。
 

trim():去除字符串两边的空格
 

substring():提取字符串中两个指定的索引号之间的字符

JSON

Javascript自定义对象

定义格式:

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

    //自定义对象
    var user = {
        name: "Tom",
        age: 10,
        gender: "male",
        // eat: function(){
        //     alert("用膳~");
        // }
        eat(){
            alert("用膳~");
        }
    }

 调用格式:

对象名.属性名;

对象名.函数名();

    alert(user.name);
    user.eat();
 JSON-基础语法

    //定义json
    var jsonstr = '{"name":"Tom", "age":18, "addr":["北京","上海","西安"]}';
    alert(jsonstr.name);

    //json字符串--js对象
    var obj = JSON.parse(jsonstr);
    alert(obj.name);

    //js对象--json字符串
    alert(JSON.stringify(obj));

 value 的数据类型为:

数字(整数或浮点数)

字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
nul

BOM

概念:

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

组成:

Window:浏览器窗口对象
Navigator:浏览器对象
Screen:屏幕对象
History:历史记录对象
Location:地址栏对象

 Window

 Location

DOM

 

HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的。(Window可以省略)

Document对象中提供了以下获取Element元素对象的函数:

1.根据id属性值获取,返回单个Element对象
var hl = document.getElementById('h1');

2.根据标签名称获取,返回Element对象数组
var divs =document.getElementsByTagName('div');

3.根据name属性值获取,返回Element对象数组
var hobbys = document.getElementsByName('hobby');

4.根据class属性值获取,返回Element对象数组
var clss=document.getElementsByClassName('cls');

 事件绑定

方式一:通过 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>

常见事件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1708969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【OpenCV】图像通道合并与分离,ROI

介绍可以实现图像通道合并与分离的API&#xff0c;这只是一种方式&#xff0c;后续还会介绍其他的合并与分离方法&#xff0c;以及ROI区域截取的方法。相关API&#xff1a; split() merge() Mat对象() 代码&#xff1a; #include "iostream" #include "ope…

VUE3 学习笔记(6):data数据的监听、表单绑定、操作DOM

data数据的监听&#xff08;侦听&#xff09; 对于data的值的监听&#xff0c;可以用watch中与data中的参数命名一致的值做为函数进行获取监听变动前后的值再做逻辑判断&#xff0c;如下图所示。 示例代码 <template><div><p :class"classDemo">{…

【SQL学习进阶】从入门到高级应用(二)

文章目录 简单查询查一个字段查多个字段查所有字段查询时字段可参与数学运算查询时字段可起别名as关键字省略as关键字别名中有空格别名中有中文 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xf…

【测评】香橙派 AIpro上手初体验

AI毋庸置疑是近年来&#xff0c;热度最高的技术之一&#xff0c;作为一名工程师拥抱新技术的同时不可或缺的需要一块强悍的开发板&#xff0c;香橙派 AIpro除了拥有好看的皮囊之外&#xff0c;还拥有一个有趣且充满魅力的灵魂。作为一位长期活跃在嵌入式开发领域的工程师&#…

Autodl服务器中Faster-rcnn(jwyang)复现(一)

前言 在做实验时需要用到faster-rcnn做对比,本节首先完成代码复现,用的数据集是VOC2007~ 项目地址:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0 复现环境:autodl服务器+python3.6+cuda11.3+Ubuntu20.04+Pytorch1.10.0 目录 一、环境配置二、编译cud…

杀死那个进程

一、场景 eclipse在启动tomcat时&#xff0c;出现端口被占用的情况。我寻思着“任务管理器”没出现相应程序在跑啊。 1.1问题&#xff1a;端口和进程的关系 端口和进程之间存在着一种关系&#xff0c;端口是一个逻辑概念&#xff0c;它用于标识网络通信中的一个终点&#xff0…

二分答案思想下的二进制问题

序列合并 题目描述 给定一个长度为 n n n 的非负整数序列 { a n } \{a_n\} {an​}&#xff0c;你可以进行 k k k 次操作&#xff0c;每次操作你选择两个相邻的数&#xff0c;把它们合并成它们的按位或。 形式化地&#xff0c;一次操作中&#xff0c;你选择一个下标 i i …

【算法】【二叉树,DFS,哈希集合,分类讨论】力扣1110. 删点成林

1110. 删点成林 文章目录 【算法】力扣【二叉树&#xff0c;DFS&#xff0c;哈希集合&#xff0c;分类讨论】1110. 删点成林题目描述示例 1&#xff1a;示例 2&#xff1a; 输入输出示例解释思路解析核心思想算法步骤复杂度分析 代码实现总结 【算法】力扣【二叉树&#xff0c…

软件程序设计规范(代码编写规范文档)-word下载

程序的编码是一个创造性极强的工作&#xff0c;必须要遵守一定的规则和限制&#xff0c;编码风格的重要性对软件项目开发来说是不言而喻的。 开发工程师在开发过程中必须遵守本规范&#xff0c;规范是代码编写及代码验收等管理环节中必须执行的标准。 编制基本原则&#xff1a;…

json/excel文件上传下载工具方法汇总

文章目录 浏览器下载json文件浏览器下载excel文件【Workbook】浏览器导入json文件【ObjectMapper】浏览器导入excel文件【Workbook】ResourceLoader读取类路径下单个jsonResourceLoader读取类路径下所有json文件 浏览器下载json文件 Operation(summary "设备模型导出(带分…

【Vue】自动导入组件

1. 下载插件 npm install unplugin-vue-components 2. 修改vite.config.js import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite import vue from vitejs/plugin-vue import Components from unplugin-vue-components/vite // 按需加载自定义组件/…

鲜花门店小程序开发流程:详细教程,让你轻松掌握

想要开发一款专属于自己鲜花门店的小程序吗&#xff1f;不知道从何开始&#xff1f;别担心&#xff0c;本文将为你提供详细的开发流程&#xff0c;帮助你轻松掌握。 1. 注册登录乔拓云网并进入操作后台 首先&#xff0c;你需要注册并登录乔拓云网&#xff0c;然后进入操作后台…

系统开发与运行知识

系统开发与运行知识 导航 文章目录 系统开发与运行知识导航一、软件工程二、软件生命周期三、开发模型四、开发方法五、需求分析结构化分析 六、数据流图分层数据流图的画法设计注意事项 七、数据字典数据字典的内容 八、系统设计九、结构化设计常用工具十、面向对象十一、UML…

集合的创建

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Python中的集合同数学中的集合概念类似&#xff0c;也是用于保存不重复元素的。它有可变集合&#xff08;set&#xff09;和不可变集合&#xff08;f…

Vue3实战笔记(34)—完美的菜单组件封装

文章目录 前言多层菜单封装总结 前言 之前简单的封装了一下菜单组件&#xff0c;数据都是写死的&#xff0c;多层嵌套没有支持&#xff0c;学完了组件传值&#xff0c;计算属性就可以继续完善了。 多层菜单封装 先看下数据结构&#xff1a; {"id":"1",&q…

K210 数字识别 笔记

一、烧写固件 连接k210开发板&#xff0c;点开烧录固件工具&#xff0c;选中固件&#xff0c;并下载 二、模型训练 网站&#xff1a;MaixHub 1、上传文件 2、开始标记数据 添加9个标签&#xff0c;命名为1~9&#xff0c;按键盘w开始标记&#xff0c;键盘D可以下一张图片&…

Redis学习篇2:Redis在Spring中的应用

本文继上文开始讲述了Redis在IDEA中如何应用以及集成进入spring开发环境&#xff0c;以及如何使用Redis客户端。上一个文章&#xff1a;Redis学习篇1&#xff1a;初识Redishttps://blog.csdn.net/jialuosi/article/details/139057088 一、Redis在java中的客户端 二、SpringDat…

Spring Boot中@Value加载配置的替代者:@ConfigurationProperties

Value注解Spring Boot开发者都已经熟悉了&#xff0c;通过该注解&#xff0c;我们可以快速的把配置信息加载到Spring的Bean中。 例如&#xff1a;在application.yml中添加了一个配置如下&#xff1a; 我想在service中获取name&#xff0c;通过value注解方式实现&#xff0c;代…

【JVM精通之路】垃圾回收-三色标记算法

首先预期你已经基本了解垃圾回收的相关知识&#xff0c;包括新生代垃圾回收器&#xff0c;老年代垃圾回收器&#xff0c;以及他们的算法&#xff0c;可达性分析等等。 先想象一个场景 最开始黑色节点是GC-Roots的根节点&#xff0c;这些对象有这样的特点因此被选为垃圾回收的根…