JS(JavaScript)和JQuery基本使用

JS

JS:
今天的JavaScript:承担更多责任
2003年之前,JavaScript被认为“牛皮鲜”,用来制作页面上的广告,弹窗、漂浮的广告。什么东西让人烦,什么东西就是JavaScript开发的。所以浏览器就推出了屏蔽广告功能。
2004年JavaScript命运开始改变了,那一年谷歌公司,开始带头使用Ajax技术了,Ajax技术就是JavaScript的一个应用。并且,那时候人们逐渐开始提升用户体验了。

007年乔布斯发布了iPhone,这一年开始,用户就多了上网的途径,就是用移动设备上网。
JavaScript在移动页面中,也是不可或缺的。并且这一年,互联网开始标准化,按照W3C规则三层分离,人们越来越重视JavaScript了。
2011年,Node.js诞生,使JavaScript能够开发服务器程序了。

今天,H5工程师是绝对的吃香,能够和iOS、Android工程师比肩,毫不逊色的。

JS:

1、直接嵌入HTML页面。
2、由浏览器解释执行代码,不进行预编译。

JS:解释型语言
Java:编译型语言

JS不区分单引号和双引号。

直接量(常量) 'abc' 12
也称为“字面量”,就是看见什么,它就是什么。
简单的直接量有2种:数字、字符串。
数值的直接量的表达非常简单,就是写上去就行了,不需要任何的符号
alert(886); //886是数字,所以不需要加引号。
字符串,就是人说的话,比如单词、句子,它们不是数字。一定要加上引号。

变量
初中的时候,学习了一个学科“代数”,x、y、z、a、b、c。
计算机的程序中,也是有这样的量,就是用字母来表示数字、字符串等其他东西的,称为“变量”。
var num = 100;
variable
这就是一个固定的写法,就是语法。也就是说,我们使用var来定义一个变量。
int num = 100;

变量名区分大小写,允许包含字母、数字、美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号。
起有意义的名字,最重要一点就是“见名知意”。
image

DOM介绍:

dom:document object model文档对象模型
dom技术在JS里面作用:JS语言和Html/Xml标签之间沟通的一个桥梁。
image

为了方便javascript语言通过dom操作html比较方便,
把html标签的内容划分为各种节点:
文档节点(document)
元素节点 也叫标签 getElementsByTagName
文本节点
属性节点 type=”text” name=”username”
注释节点
image

dom就是学习利用JS如何实现对Html标签增删改查。

documnet:是页面中的内置对象,内置对象简单理解就是已经new好的一个对象,对象的名字就叫document。

元素节点的获取:
document.getElementById( id属性值);
document.getElementsByTagName("标签名");
image

练习:
写一个计算器


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input  type="text" id="input1"/><br/>
    <input  type="text" id="input2"/><br/>
    <button onclick="clickAdd()">加</button>
    <button onclick="clickSub()">减</button>
    <button onclick="clickMul()">乘</button>
    <button onclick="clickDiv()">除</button><br/>
    <input  type="text" id="output1"/><br/>
    <script type="text/javascript">
        var inputValue1
        var inputValue2
        var outputObj
        function clickGet(){
            inputValue1 = parseFloat(document.getElementById('input1').value)
            inputValue2 = parseFloat(document.getElementById('input2').value)
            outputObj = document.getElementById('output1')
        }
        function clickAdd(){
            clickGet()
            outputObj.value=inputValue1+inputValue2
        }
        function clickSub(){
            clickGet()
            outputObj.value=inputValue1-inputValue2
        }
        function clickMul(){
            clickGet()
            outputObj.value=inputValue1*inputValue2
        }
        function clickDiv(){
            clickGet()
            outputObj.value=inputValue1/inputValue2
        }

    </script>
</body>
</html>

JS数据类型

image

null、undefined
变量的声明:
var x;
var y;
没有初始化的变量自动取值为undefined。
如果这个变量值为null表示这个变量已经赋值了,这个值正好是null。
声明变量统一使用var声明,声明的时候变量是没有类型。
但是变量赋值之后就有类型,这个变量的类型就是赋值给这个变量值的类型。
image

关系运算符:

全等:===
不全等:!==
判断值是不是相等 ,还有类型是不是相等。
image

String:

创建String对象有两种方式
1、var str1 = "hello js!";
2、var str2 = new String("hello js!");
String属性:length
str1.length; // 9

String常用的方法:
1、大小写转换

str.toLowerCase();
str.toUpperCase();
var str = "Hello jS!";
console.log(str.toLowerCase());//hello js!
console.log(str.toUpperCase());//HELLO JS!

2、获取指定字符:

str.charAt(index)      返回指定位置的字符
index:字符位置
console.log(str.charAt(6));//j

3、查询指定字符串出现索引

str.indexOf(findstr, [index]);

str.indexOf(findstr);
str.indexOf(findstr,index);
str.indexOf(findstr,[index])

str.lastIndexOf(findstr, [index]);

使用说明:
findstr:查找的字符串
index:开始查找的位置索引,可以省略
返回findstr在x中出现的首字符位置索引,如果没有找到则返回-1
lastIndexOf:从后面找起

4、split() 方法用于把一个字符串分割成字符串数组。

x.split(separator,howmany)

separator : 字符串或正则表达式,从该参数指定的地方分割 stringObject
howmany:指定返回数组的最大长度,可以省略
返回分割后的字符串数组

image
image

Boolean

Java中条件表达式必须返回布尔类型
2<3
JS中表达式可以是任意表达式。
image

1不是0,就是非空值,表示true。

NaN=Not a number

在JS里面一切表示空的值都是false,非空的值都是true。

    <script type="text/javascript">
       if(true) {console.log('true')}
       if(0) {console.log('0')}
       if(!0) {console.log('!0')}
       if('') {console.log('空字符串')}
       if('abc') {console.log('字符串abc')}
    </script>

Array对象:

创建数组对象
int[] array; String[] array;
var array1 = new Array();//创建一个空的数组
var array2 = new Array(7);//创建长度是7的数组
var array3 = new Array(100, "a", true);
var array4 = [100, 200, 300];

获取数组元素的个数:length属性
var array1 = new Array(7);
console.log(array1.length);//7
var array2 = new Array(100, "a", true);
console.log(array2.length);//3
//创建一个空数组
//数组长度是可变
var array = new Array();
array[0] = "232";
console.log(array);//["232"]
console.log(array.length);//1
array[1] = true;
console.log(array);//["232", true]
console.log(array.length);//2

//使用push和pop分别对应栈操作的入栈和出栈
var arr = new Array();
arr.push("zhangsan");
console.log(arr);//["zhangsan"]
arr.push(false)
console.log(arr);//["zhangsan", false]
arr.push(45)
console.log(arr);//["zhangsan", false, 45]
//console.log(arr[2]);//45
console.log(arr.pop());//45
console.log(arr.pop());//false
console.log(arr.pop());//zhangsan
Math:数学相关操作
Math.PI Math.round(3.14)

eval:
console.log(eval('2+3')); //5
eval('var x=10;var y=20;console.log(x*y);'); //200
innerText 直接当成一个字符串展示
innerHtml 将内容当成html来解析

大了
spanObj.innerText='大了';
作业:
1、负数是没有阶乘
2、0的阶乘是1
3、整数的阶乘n!=n(n-1)(n-2)....321

span

2、猜数字游戏:

1-100
[0.0,1)
0.0=<Math.random()<1
0.0---------------0.9999999... *100
0.0---------------99.999999... +1
1.0---------------100.99999... parseInt
1-----------------100
var random = parseInt(Math.random() * 100 + 1);

NumberFormatException
parseInt("1234blue"); //returns 1234
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN、

JQuery

jQuery:
其是对javascript封装的一个框架包,简化对javascript的操作
javascript代码:获得页面节点对象、ajax元素节点对象实现、事件操作、事件对象
jquery代码:无需考虑浏览器兼容问题、代码足够少

jQuery:javascript+query
使用前期,jquery侧重快速找到页面上各种节点。
后期jquery丰富了事件操作、ajax操作、动画效果、DOM操作等等。

https://www.w3xue.com/manual/jq/manual_index.html

选择器

基本选择器

$(‘#id属性值’)  ----------->document.getElementById()
$(‘tag标签名称’)----------->document.getElementsByTagName();
$(‘.class属性值’)   class属性值选择器
$(‘*’)     通配符选择器
$(‘s1,s2,s3’)联合选择器

2. 层次选择器

2.1 $(s1 s2) [后代选择器]
后代选择器:在s1内部获得全部的s2节点(不考虑层次)

$(“div  span”)
<div>
<span></span>
<p>
<span></span>
</p>
</div>
<span></span>

2.2 $(s1 > s2) [父子]
直接子元素选择器:在s1内部获得s2的子元素节点(直接孩子,孙子不算)

$(“div > span”)
<div>
<span></span>
<p>
<span></span>
</p>
<span></span>
</div>
<span></span>

2.3 $(s1 + s2) [兄弟]
直接兄弟选择器:在s1后边获得紧紧挨着的第一个兄弟关系的s2节点

$(“div + span”)
<div>
<span></span>
<p>
<span></span>
</p>
<span></span>
</div>
<span></span>
<span></span>
<div></div>
<span></span>

2.4 $(s1 ~ s2) [兄弟]
后续全部兄弟关系节点选择器:在s1后边获得全部兄弟关系的s2节点

$(“div ~ span”)
<div>
<span></span>
<p>
<span></span>
</p>
<span></span>
</div>
<span></span>
<span></span>
<p></p>
<span></span>

3、基本筛选

eq = equal gt=great than lt=less than

4. 内容过滤选择器

4.1 :contains(内容)
包含内容选择器,获得节点内部必须通过标签包含指定的内容
$(“div:contains(beijing)”)

linken love beijing
jack love shanghai
4.2 :empty 获得空元素(内部没有任何元素/文本(空) )节点对象 $(“div:empty”)
linken love beijing
jack love shanghai
4.3 :has(选择器) 内部包含指定元素的选择器 $(“div:has(#apple)”)
hello

4.4 :parent 寻找的节点必须作为父元素节点存在(必须是别人的父亲) $(“div:parent”)
linken love beijing
jack love shanghai

5、 表单域选中选择器

复选框、单选按钮、下拉列表

属性操作

<input type=”text” class=”apple orange” id=”username” name=”username” value=”tom”
address=”beijing”
/>
JS:
itnode.属性名称
itnode.属性名称= 值;
itnode.getAttribute(属性名称);
itnode.setAttribute(属性名称,值);
自定义的属性例如address,只能通过getAttribute方式。

jquery方式操作属性(attribute):property
\(().attr(属性名称); //获得属性信息值 \)().attr(属性名称,值); //设置属性的信息
$().removeAttr(属性名称); //删除属性

css样式操作

\(().css(name,value); //设置 \)().css(name); //获取
3.1 css()样式操作特点:
① 样式获取,jquery可以获取 行内、内部、外部的样式。
dom方式只能获得行内样式
② 复合属性样式需要拆分为"具体样式"才可以操作
例如: background 需要拆分为 background-color background-image 等进行操作
border: border-left-style border-left-width border-left-color 等

jQuery 中 attr() 和 prop() 方法的区别
具有 true 和 false 两个值的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()

jQ基础篇--jQuery对象与dom对象的区别与相互转换
https://segmentfault.com/a/1190000003710344

练习:
1、表格隔行显示

image

posted @ 2022-12-15 10:28  kingwzun  阅读(326)  评论(0编辑  收藏  举报