JavaScript新手学习手册-基础代码(一)

news2024/9/23 17:21:15

什么是JavaScript?

百度百科

什么是控制台?

网页➡快捷键F12 进入Console就是控制台,它的作用与开发软件相同,可以进行代码的编写在紫色位置进行编写,另外console.log()方法所打印的内容都是在此进行输出。

 

 

一:导入Javascrip标签 

<script> 
	//存放Javascript的代码
<script>

注意:导入的标签在HTML文档中是放在头部(head)或者是尾部(body)

区别:

头部:网页的内容出现滞后的现象,会出现一种卡了的现象

尾部:一般会先解析html文档,然后才会更新Script中的内容,但也会的出现卡的现象,但是比放在头部好一点。

最优解:async和defer属性

    <script defer src="js.js"></script>
    <script async src="js.js"></script>

 属性defer:可以实现网页元素加载与Scrpit.js的加载同步进行,但是有第一点就是script.js中的代码执行是在所有的元素加载完成之后才能被监测到,才能执行script.js代码

二:导入js文件

在通常的开发中js代码与网页代码是分离的,一般是在网页代码导入js代码来实现对JavaScript代码的输出。

创建一个新的js文档,在文档输入下面的一行代码,通过对js文件的调用,看网页中会不会出现弹框,出现则是调用成功。

// 弹框:显示需要的内容
alert("hello,world")

代码:实现对js文件的调用

    <script src="class_1.js"></script>

演示结果:

 

三:基础语法

1):var关键字:可以定义变量,可以定义全局变量, var后面跟着变量名

计算机语言中的var:Pascal: var 在Pascal 作为程序的保留字,用于定义变量。 如:var a:integer;(定义变量a,类型为整数) var u:array[1..100]of integer;(定义数组u,下标由1至100,数组单元类型为整数)

2)数据类型

  1. 定义一个变量,通过var来定义也可以通过let来定义,但是let的使用作用域仅限在一个语句块中,当出了这个语句块定义的变量,就没有任何作用了
  2. 数:JavaScript中数是不区分整数和小数的说几个特别的名词:NaN(not a number)可以这种方法理解没有一个书,Infinity表示无限大,就是无穷的意思。
  3. 字符串:'aaa' 或者是"aaa"用引号或则是双引号来表示
  4. 布尔值:正确true 错误false
  5. &&:表示and的意思:同真为真      ||:有真则真
  6. 等号问题:=赋值的时候使用 == 等于:类型不一样值相同也会判定为true ’aaa‘==aaa,===则表示绝对等于:只有类型和值都一样才会判定为true
  7. 浮点数:在JavaScript存在精度问题
  8. Null:空值  undefined:未定义
  9. 数组:
    //方法一:
    var arr = [1,2,3,4,5,'hello',null,true];
    //方法二:
    new Array(1,2,3,4,5,'hello');

3):字符串

        var a = 'aaa'; //定义单行字符串
        var msg =      //定义多行字符串
            `hello
            world
            `;
        
//定义模板的字符串,可以直接引用  `符号是esc键下面的符号
        let name="Tom";
        let age = 18;
        var student = `你好 ,${name}`;  //直接引用创建的变量
        console.log(student)    
// console.log(....):打印想要的输出的内容,这里打印的是变量Student的属性  

控制台输出,console.log()打印的内容

 

修改字符串:

name.length
//3
name
//'Tom'
name[0]='S'
//'S'

字符串的大小写转换

 student.toUpperCase();    小写转大写

student.toLowerCase();     大写转小写

字符串的索引以及截取

var students = 'abcdedghijk'   //定义一个字符串
students.indexOf('d')     //获取某个字符在所在字符串的位置
 //3 
students.substring(1)     //截取字符串从1开始,注意substring方法索引是从0开始的
//'bcdedghijk'
students.substring(1,3)   //截取字符串从1开始,到3结束,注意[1,3)区间
'bc'

4):数组

定义数组

var list = [1,2,3,4,5,6,7,8,9,10,11,0,12];  //定义一个最简单的数组

list.length   //获取这个数组的长度
//13
list.indexOf(5) //获取数组索引值为5中的数据
//4

 slice方法:截取数组中的一部分,并返回一个新的数组

pop():方法将数组中的最后一个元素弹出

push():方法将指定元素导入到数组的尾部

 

 

shift()方法:将数组的头部第一个元素导出来

unshift()方法:将指定元素导入到数组的头部成为第一个元素

 sort()方法:将数组中的元素进行排序

reserve()方法:反转排序

concat():方法:在原本的数组进行修改,但不会修改原数组,只会返回一个新的数组

 

join()方法:以指定的字符取拼接数组

5):多维数组

注意:多维数组的方法与数组使用方法大约相同

 

 四:对象

        var key = {
            nama:"吗",   //nama表示属性,'ma'表示属性值
            id: 3 ,
            age:18,
            target:[1,2,3,4,5,"哇哦","....."]
        }

如何取对象的值?在网页的控制台进行测试

keyvalue.nama
'吗'
keyvalue.id
3

如果取的数据值,在对象中没有他就会报undefined错误,关于undefined前面有简单的讲解。

对象中的方法:

 var key = {          //定义一个对象
     nama:"吗",
     id: 3 ,
     age:18,
     target:[1,2,3,4,5,"哇哦","....."]
        }
key     //获取已创建对象中的值
//{nama: '吗', id: 3, age: 18, target: Array(7)}
delete key.age     //删除对象的属性
//true 
key
//{nama: '吗', id: 3, target: Array(7)}
key.baba = 'myc'   //往对象中添加新的属性
//'myc'
key
{nama: '吗', id: 3, target: Array(7), baba: 'myc'}

'name' in key   //判断对象中是否拥有这个属性
//false
'nama' in key
//true
'toString' in key   //in这个方法中判断,不光判断自身,还判断继承toString就是继承,所以返回值为true
//true

key.hasOwnProperty('nama')//判断这个对象自身有没有此属性
//true
key.hasOwnProperty('nam')
//false

 五:循环

1:if.....else if......else语句

<script>    
   var score = 66;    //定义一个变量,并赋给它新值
   if(score >60 && score<70){    //满足60到70的值弹框
        alert("良")
   }else if(score>70 &&score<80){
        alert("中等")
   }else{
         alert("other")
        }
</script>

代码:只是起一个演示的作用,代码编写的可能不严谨

2:while循环:

        var num = 0;
        var sum=0;
        while (num<100){
            num = num +1;
            sum = sum +num;
        }
        alert(sum);

 

3):for循环

 新的循环方法:函数进行循环

 

for ( var index in object){}

 

六: Map和Set数组

关于Map和Set数组的基础操作

        var map = new Map([["tom",100],['TOM',99],['kaven',98]]);  //创建一个新的Map数组
        var name = map.get('tom');  //获取数组某个key的value值
        console.log(name)         //打印输出
        map.set("ma",30)  //往map数组添加数据
        map.delete('ma')  //删除map数组中的数据
        
        //创建一个新的Set数组
        var set = new Set([1,2,3,3,3,3])  //与Map数组的区别将重复的数据不进行显示
        console.log(set)
        set.delete(1)
        console.log(set.has(1))   //判断数组中的元素是否含有括号内的内容
        console.log(set.has(3))
        set.add(4)                //添加数据

        //专门对set和map数组遍历的一种方法iterator
        console.log(set[Symbol.iterator]())
        console.log(map[Symbol.iterator]())

        //在map和set数组中使用for 循环遍历建议使用 for of

        for (var x of map){
            console.log(x)
        }
        set.add("name",100)
        for (var y of set){
            console.log(y)   //输出内容不全,是一个bug注意
        }

结果输出:

 

女神节快到了,祝愿天下的女码农们,早日找到自己的幸福!


 

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

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

相关文章

Spark Join

Spark Join关联形式内关联外关联左外关联右外关联全外关联左半/逆关联关联机制NLJSMJHJ分发模式Join 选择等值 Join不等值 JoinJoin 按照关联形式&#xff08;Join Types&#xff09;划分 : 内关联、外关联、左关联、右关联 Join 按实现机制划分 : NLJ (Nested Loop Join) 、S…

【操作系统原理实验】页面替换策略模拟实现

选择一种高级语言如C/C等&#xff0c;编写一个页面替换算法的模拟实现程序。1) 设计内存管理相关数据结构&#xff1b;2) 随机生成一个页面请求序列&#xff1b;3) 设置内存管理模拟的关键参数&#xff1b;4) 实现该页面置换算法&#xff1b;5) 模拟实现给定配置请求序列的换页…

【python socket】实现websocket服务端

一、获取握手信息首先通过如下代码&#xff0c;我们使用socket来获取客户端的握手信息import socketsock socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(("127.0.0.1", 8002)) sock.li…

启动项管理工具Autoruns使用实验(20)

实验目的 &#xff08;1&#xff09;了解注册表的相关知识&#xff1b; &#xff08;2&#xff09;了解程序在开机过程中的自启动&#xff1b; &#xff08;3&#xff09;掌握Autoruns在注册表和启动项方面的功能&#xff1b;预备知识 注册表是windows操作系统中的一个核心数据…

Android Framework-Android启动过程

第一个系统进程&#xff08;init&#xff09; Android设备的启动必须经历3个阶段&#xff0c;即Boot Loader、Linux Kernel和Android系统服务&#xff0c;默认情况下它们都有各自的启动界面。严格来说&#xff0c;Android系统实际上是运行于Linux内核之上的一系列“服务进程”…

元宇宙XR应用,如何迎接大规模普及的时代?

未来&#xff0c;具有互动性、沉浸感的元宇宙/XR应用将逐渐成为主流&#xff0c;这个趋势已毋庸置疑。 然而&#xff0c;在大趋势下&#xff0c;大众终端用户普遍设备能力不足、网络传输时延、GPU算力分配限制等技术挑战&#xff0c;依然是元宇宙/XR应用在大众广泛渗透的瓶颈。…

【vulhub漏洞复现】Fastjson 1.2.24反序列化漏洞

一、漏洞详情Fastjson 是一个 Java 库&#xff0c;可以将 Java 对象转换为 JSON 格式&#xff0c;也可以将 JSON 字符串转换为 Java 对象。漏洞成因&#xff1a;目标网站在解析 json 时&#xff0c;未对 json 内容进行验证&#xff0c;直接将 json 解析成 java 对象并执行&…

国产数字源表在压力传感器电阻测量上的应用

压力传感器分类压力传感器(Pressure Transducer)是能感受压力信号&#xff0c;并能按照一定的规律将压力信号转换成可用的输出的电信号的器件或装置,压力传感器通常由压力敏感元件和信号处理单元组成。常见的压力传感器有四种:应变式压力传感器、压阻式压力传感器、电容式压力传…

OpenMMLab 目标检测

OpenMMLab 目标检测1. 目标检测简介1.1 滑窗2. 基础知识2.1 边界框&#xff08;Bounding Box&#xff09;3. 两阶段目标检测算法3.1 多尺度检测技术4. 单阶段目标检测算法4.1 YOLO: You Only Look Once (2015)4.2 SSD: Single Shot MultiBox Detetor (2016)5. 无锚框目标检测算…

Nginx的搭建与核心配置

目录 一.Nginx是什么&#xff1f; 1.Nginx概述 2.Nginx模块与作用 3.Nginx三大作用&#xff1a;反向代理、负载均衡、动静分离 二.Nginx和Apache的差异 三.安装Nginx 1.编译安装 2.yum安装 四.Nginx的信号使用 五.Nginx的核心配置指令 1.访问状态统计配置 2.基于授…

非华为电脑安装华为电脑管家以及注意事项

非华为电脑安装华为电脑管家前言安装注意事项效果展示前言 非华为电脑是可以安装华为电脑管家的&#xff0c;不过部分功能可能不兼容。值得一提的是&#xff0c;超级终端、多屏协同、文件共享、远程控制等功能大部分电脑是可以使用的&#xff0c;本人在联想ThinkBook 15电脑上…

【CS144】Lab1总结

Lab1Lab汇总概述具体实现Lab汇总 概述 lab1要求实现一个字符串的装配器&#xff0c;用于将TCPTCPTCP接收方接收到的字节流拼接起来&#xff0c;并缓存一定量的乱序到达的字节&#xff0c;便于TCPTCPTCP接收方相关功能的实现。 具体实现 该装配器实现的重点是push_substring…

Java线程池使用与原理解析2(自定义线程池、合适的线程数量、线程池阻塞队列、线程拒绝策略)

在上篇我们学习了线程池各个参数的含义&#xff0c;线程池任务处理流程&#xff0c;使用线程池的好处等内容&#xff0c;本篇我们学习如何创建一个适合我们业务的线程池。为此&#xff0c;我们有必要先学习一下如何大概确定我们线程池核心线程数、怎么设置阻塞队列的类型与大小…

Malware Dev 04 - 隐匿之 ETW(Event Tracing for Windows)Bypass

写在最前 如果你是信息安全爱好者&#xff0c;如果你想考一些证书来提升自己的能力&#xff0c;那么欢迎大家来我的 Discord 频道 Northern Bay。邀请链接在这里&#xff1a; https://discord.gg/9XvvuFq9Wb我拥有 OSCP&#xff0c;OSEP&#xff0c;OSWE&#xff0c;OSED&…

使用leangoo领歌单团队敏捷开发项目管理

概述单团队敏捷开发主要是针对10人以下、只有一个Scrum团队的小型产品或项目的敏捷开发。对于小型团队来说&#xff0c;在Leangoo中创建一个单团队敏捷开发项目就可以很好地支持团队产品或项目的开发。适用场景适用于单个团队进行Scrum敏捷开发协作&#xff0c;Leangoo项目内也…

Linux - 磁盘存储管理 磁盘引入

# 我们要介绍下 磁盘管理&#xff0c; 那不妨先来看一张图来简单 引入 &#xff1a;这张图呢&#xff0c;是我们 Windows 上的磁盘管理的显示 。根据这幅图呢&#xff0c;提出一个问题 &#xff1a;>>> 这幅图磁盘管理所显示的内容&#xff0c;你能判断出 该电脑 有几…

【FMCW 04】测角-Angle FFT

在之前的文章中&#xff0c;我们已经详尽讨论过FMCW雷达测距和测速的原理&#xff0c;现在来讲最后一块内容&#xff0c;测角。测角对于硬件设备具有要求&#xff0c;即要求雷达具有多发多收结构&#xff0c;从而形成多个空间信道&#xff08;channel&#xff09;&#xff0c;我…

css选择器详解

简单选择器&#xff08;根据名称、id、类来选取元素&#xff09;组合器选择器&#xff08;根据它们之间的特定关系来选取元素&#xff09;伪类选择器&#xff08;根据特定状态选取元素&#xff09;伪元素选择器&#xff08;选取元素的一部分并设置其样式&#xff09;属性选择器…

第六讲:ambari-web 模块二次开发

上述图片为 Ambari 部署及操作 hdp 集群相关的部分界面截图。这些页面如果想调整的话,比如汉化,二次开发等,则可以修改 ambari-web 模块的源码来实现。 一、介绍 ambari-web 模块涉及到的界面有: HDP 集群部署向导已安装服务的仪表板、配置界面等主机列表及详细信息告警列…

【Opencv项目实战】图像的像素值反转

文章目录一、项目思路二、算法详解2.1、获取图像信息2.2、新建模板2.3、图像通道顺序三、项目实战&#xff1a;彩图的像素值反转&#xff08;方法一&#xff09;四、项目实战&#xff1a;彩图的像素值反转&#xff08;方法二&#xff09;五、项目实战&#xff1a;彩图转换为灰图…