JavaScript及jQuery入门【上】

简介: 什么是JavaScript 概述 JavaScript是一门世界上最流行的脚本语言 Java、JavaScript 历史 ECMAScript可以理解为是JavaScript的一个标准 最新版本已经到es6~ 但是大部分浏览器还停留在支持es5代码上 开发环境--线上环境,版本不一致 快速入门 引入

什么是JavaScript


概述


JavaScript是一门世界上最流行的脚本语言


Java、JavaScript


历史


ECMAScript可以理解为是JavaScript的一个标准


最新版本已经到es6~


但是大部分浏览器还停留在支持es5代码上


开发环境--线上环境,版本不一致


快速入门


引入JavaScript


1、内部标签


<script>
    //......
</script>


2、外部引入


abc.js


//...


test.html


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


测试代码


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- script标签内,写JavaScript代码 -->
    <!--<script>-->
    <!--    alert('hello,world');-->
    <!--</script>-->
    <!-- 外部引入 -->
    <!--注意:script标签必须成对出现-->
    <script src="js/qj.js"></script>
    <!-- 不用显式定义type,也默认就是javascript -->
    <script type="text/javascript">
    </script>
</head>
<body>
<!--这里也可以存放-->    
</body>
</html>


基本语法入门


<!--JavaScript严格区分大小写!-->
<script>
    //1. 定义变量    变量类型  变量名  =  变量值;
    var score = 75;
    //alert(num);
    //2. 条件控制
    if (score>60 && score<70){
        alert("60~70");
    }else if (score>70 && score<80){
        alert("70~80");
    }else {
        alert("other");
    }
    //console.log(score) 在浏览器的控制台打印变量! System.out.println()
    /*
        * asdasdasd
        * */
</script>


数据类型


数值,文本,图形,视频,音频......


变量


var 王者荣耀 = "倔强青铜";


number


js不区分小数和整数,Number


123 //整数123
123.1 //浮点数123.1
1.23e4 //科学计数法
-99 //负数
NaN // not a number
Infinity //表示无限大


字符串


'abc' "abc"


布尔值


true, false


逻辑运算


&&  两个都为真,结果为真
||  一个为真,结果为真
!  真即假,假即真


比较运算符!!!


=
==  等于(类型不一样,值一样,也会判断为true)
===  绝对等于(类型一样,值一样,结果为true)


这是一个JS的缺陷,坚持不要使用==比较


须知:

  • NaN===NaN,这个与所有的数值都不相等,包括自己
  • 只能通过isNaN(NaN)来判断这个数是否是NaN


浮点数问题:


console.log((1/3) === (1-2/3))


尽量避免使用浮点数进行运算,存在精度问题!


Math.abs(1/3-(1-2/3))<0.00000001


null 和 undefined

  • null 空
  • undefined 未定义


数组

Java的数组必须是相同类型的对象,JS中不需要这样


//保证代码的可读性,尽量使用[]
var arr = [1,2,3,4,5,'hello',null,true];
new Array(1,12,3,4,4,5,'hello');


取数组下标:如果越界了,就会


undefined


对象

对象是大括号,数组是中括号~~


每个属性之间使用逗号隔开,最后一个不需要添加逗号

//Person person = new Person(1,2,3,4,5);
var person = {
    name: "qinjiang",
    age: 3,
    tags: ['js','java','web','...']
}


取对象的值


person.name
> "qinjiang"
person.age
> 3


严格检查格式



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--
    前提:IDEA 需要设置支持ES6语法
    'use strict'; 严格检查模式,预防JavaScript的随意性导致产生的一些问题
    必须写在JavaScript的第一行!
    局部变量建议都使用 let 去定义~
    -->
    <script>
        'use strict';
        //全局变量
        let i = 1;
        // ES6  let
    </script>
</head>
<body>
</body>
</html>


数据类型


字符串


1、正常字符串我们使用 单引号,或者双引号包裹


2、注意转义字符 \


\'
\n
\t
\u4e2d \u#### Unicode字符
\x41 ASCII字符


3、多行字符串编写


//tab  上面  esc键下面
var msg = 
  `hello
  world
  nihao
  你好`


4、模板字符串


//tab 上面 esc键下面
let name = "qinjiang";
let age = 3;
let msg = `你好呀,${name}`


5、字符串长度


str.length


6、字符串的可变性,不可变



7、大小写转换


//注意,这里是方法,不是属性了
student.toUpperCase()
student.toLowerCase()


8、student.indexOf('t')


9、substring


[)
 studnet.substring(1)  //从第一个字符串截取到最后一个字符串
 student.substring(1,3)  //[1,3)


数组


Array可以包含任意的数据类型


var arr = [1,2,3,4,5,6]


1、长度


arr.length


注意:加入给arr.length赋值,数值大小就会发生变化~,如果赋值过小,元素就会丢失


2、indexOf,通过元素获得下标索引


arr.indexOf(2)
1


字符串的“1”和数字1是不同的


3、slice() 截取Array的一部分,返回一个新的数组,类似于String中的substring


4、push,pop 尾部


push:  压入到尾部
pop:  弹出尾部的一个元素


5、unshift(),shift() 头部


unshift:  压入到头部
shift:  弹出头部的一个元素


6、排序 sort()


(3) ["B","C","A"]
arr.sort()
(3) ["A","B","C"]


7、元素反转


(3) ["A","B","C"]
arr.reverse()
(3) ["C","B","A"]


8、concat()


(3) ["C","B","A"]
arr.concat([1,2,3])
(6) ["C","B","A",1,2,3]
arr
(3) ["C","B","A"]


注意:concat() 并没有修改数组,只是会返回一个新的数组


9、连接符join


打印拼接数组,使用特定的字符串连接


(3) ["C","B","A"]
arr.join('-')
"C-B-A"


10、多维数组


arr = [[1,2],[3,4],["5","6"]];
arr[1][1]
4


数组:存储数据(如何存,如何取,方法都可以自己实现!)


对象


若干个键值对


var 对象名 = {
    属性名:属性值,
    属性名:属性值,
    属性名:属性值
}
//定义了一个person对象,它有四个属性!
var person = {
    name: "kuangshen",
    age: 3,
    email: "24736743@qq.com",
    score: 0
}


Js中的对象,{......}表示一个对象,键值对描述属性 xxxx:xxxx,多个属性之间使用逗号隔开,最后一个属性不加逗号!


JavaScript中的所有的键都是字符串,值是任意对象!


1、对象赋值


person.name = "qinjiang"
"qinjiang"
person.name
"qinjiang"


2、使用一个不存在的对象属性,不会报错!undefined


person.haha
undefined


3、动态的删减属性


delete person.name
true
person


4、动态的添加,直接给新的属性添加值即可


person.haha = "haha"
"haha"
person


5、判断属性值是否在这个对象中! xxx in xxx!


'age' in person
true
//继承
'toString' in person
true


6、判断一个属性是否是这个对象自身拥有的hasOwnProperty()


person.hasOwnProperty('toString')
false
person.hasOwnProperty('age')
true


流程控制


if 判断


var age = 3;
if (age>3){  //第一个判断
    alert("haha");
}else {  //否则...
    alert("kuwa~");
}


while循环,避免程序死循环


while (age<100){
    age = age + 1;
    console.log(age);
}
do{
    age = age + 1;
    console.log(age);
}while(age<100)


for循环


for (let i = 0; i < 100; i++) {
    console.log(i);
}


forEach循环


5.1引入


var age = [1,2,3,21,12,3,1,123,12];
//函数
age.forEach(function (value) {
    console.log(value)
})


for...in


//for(var index in object){}
for(var num in age){
    if (age.hasOwnProperty(num)){
        console.log("存在")
        console.log(age[num])
    }
}


Map和Set


ES6 的新特性~


Map:


//ES6
//学生的成绩,学生的名字
//var names = ["tom","jack","haha"];
//var scores = [100,90,80];
var map = new Map([['tom',100],['jack',90],['haha',80]]);
var name = map.get('tom');  //通过key获得value
map.set('admin',123456); //新增或修改
map.delete("tom"); //删除


Set: 无序不重复的集合


set.add(2);  //添加
set.delete(1);  //删除
console.log(set.has(3));  //是否包含某个元素


iterator


遍历数组


//通过for of / for in 下标
var arr = [3,4,5]
for (var x of arr){
    console.log(x)
}


遍历map


var map = new Map([["tom",100],["jack",90],["haha",80]]);
for (let x of map){
    console.log(x)
}


遍历set


var set = new Set([5,6,7]);
for (let x of set) {
    console.log(x)
}
相关文章
|
1月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
243 2
|
12天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
11天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
18 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
20天前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
54 10
|
17天前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
1月前
|
JavaScript 前端开发 开发者
jQuery:JavaScript库的瑰宝
jQuery:JavaScript库的瑰宝
41 3
|
1月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
1月前
|
自然语言处理 JavaScript 前端开发
JavaScript高级——ES6基础入门
JavaScript高级——ES6基础入门
22 1
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
427 1
|
1月前
|
JavaScript 前端开发 API
深入了解jQuery:快速、高效的JavaScript库
【10月更文挑战第11天深入了解jQuery:快速、高效的JavaScript库
12 0