JavaScript的基本使用和介绍

本文详细介绍了JavaScript的基础知识,包括数据类型、数组、对象、流程控制,以及ES6中的Map和Set。深入讲解了DOM操作,如获取、更新和删除节点,还涉及Ajax、jQuery和面向对象编程。此外,提到了对象序列化的原因和内部对象如Date和JSON。
摘要由CSDN通过智能技术生成

ui框架 ant-design 阿里巴巴出品

什么是JavaScript

是一个前端的行为 是一种流行的脚本语言
点击网页按钮会改变的一种行为

altert( ) 在页面上弹窗 console.log( ) 输出在页面上

数据类型

字符串: 正常字符串使用 单引号/或者双引号包裹

\
\n
\t
\u4e2d  \u#### Unicode字符
\x41  AscII 字符 

大小写转换

//方法
//小写转成大写STUDENT
student.toUpperCase()
//转成小写 student
student.tuLowerCase()

substring

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

Array 可以包含任数据类型 var arr = [1,2,3,4]

数组的大小可变化 如果复制过小,数据会丢失

indexOf() 通过元素下标索引 arr.indexIf(2) ====》1

slice() 截取 Array 的一部分 , 类似于String中的substring

push()、pop() 尾部

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

unshift()、shift()头部

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

image-20201222164558065

排序 sort()

image-20201222164747822

元素反转reverse()

image-20201222164841086

concat() 拼接数组的元素 但是并没有取代原先的元素组的元素 而是新生成了一个拼接的数组

image-20201222165021976

注意事项:并没有修改数组 ,只是返回一个新的数组

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

image-20201222165255023

多维数组 第一个元素1是0,0 2 是0,1 3 是 1,0 4 是1,1

image-20201222165415014

对象

若干个键值对 定义对象名

var 对象名{
   
    属性名:属性值;
    属性名:属性值;
    属性名:属性值;
}
//定义一个person对象,他有四个属性
var person = {
   
    name:"mojiejun",
    age:3;
    email:"2496776788@qq.com",
    socre;100
}

=最后一个属性不加逗号==

js对象, { …} 键值对描述属性: xxx:xxx

定义对象不会报错 ,undefined Person.gsdfg undifned

动态的删减属性 通过delete删除属性

image-20201222170446002

动态添加 直接给新的属性添加值就可以

image-20201222170620374

判断属性值是否在这个对象中 xxx in xxx (这个包括继承了toString的东西 )

image-20201222170810198

判断一个属性是否是这个对象自身拥有的hasOwnProperty() toString()继承的方法

image-20201222171109128

流程控制

if判断 while 、for循环 、

forEach循环

image-20201222171534993

for…in num 是索引下标 index才是下标的值 for…in 的循环话语 age 才是数组 num是循环的这个数字 for …in 遍历下标

image-20201222171838535

for … of 遍历他的值打印

image-20201222173525359

Map 和Set集合==<ES6的新特性>==

Map 通过他的键获得他的值(通过key 获得value) 增加(map.set(key,value))、删除(Map.delete(key)) 通过一个就可以删除

image-20201222172537310

Set 无序不重复的集合 (set.add(2))添加、( set.delete(1) )删除、(console.log( set.has(3) ))是否包含某个元素

Iterator 迭代器

遍历数组

image-20201222173612821

遍历Map

image-20201222173641111

遍历Set

image-20201222173739077

什么是对象序列化?

对象序列化是指将对象的状态转换为字符串; 序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程

为什么会有对象序列化?

当这句代码运行时,对象obj的内容会存储在一块内存中,而obj本身存储的只是这块内存的地址的映射而已。简单的说,对象obj就是我们的程序在电脑通电时在内存中维护的一种东西,如果我们程序停止了或者电脑断电了,对象obj将不复存在。那么如何把对象obj的内容保存在磁盘上呢(也就是说在没电时继续保留着)?这时就需要把对象obj序列化,也就是说把obj的内容转换成一个字符串的形式,然后再保存在磁盘上。另外,我们又怎么通过HTTP协议把对象obj的内容发送到客户端呢?没错,还是需要先把对象obj序列化,然后客户端根据接收到的字符串再反序列化(也就是将字符串还原为对象)解析出相应的对象。这也正是”百度百科—序列化“中描述的两个作用——存储、传输。

image-20210104172844258

内部对象:

Date 日期
JSON

什么是json:(JavaScript Notation )是一种轻量级的数据交换格式
简介和清晰的结构层次是的JSON 成为理想的的数据交换语言
易于人阅读和编写,同时也易于机器解析和生成,并有效的提升网络传输效率

格式: 对象用{ } 数组用 [ ] 所有的键值对用key :value

JSON和JS对象转化

image-20210104174605106

image-20210104174548075

image-20210104174811936

var obj = {
    a:"hallo",b:"hallob"}
var json = '{"a": "hallo", "b":"hellob"}'
BSON 用于芒果DB
Ajax

原生的js写法,xhr异步请求
jQuery 封装好的方法$("#name").ajax("")
axios 请求

面向对象编程

什么是面向对象:
类 :模板
对象:具体的实例

原型:

image-20210104182214810

image-20210104182241348

xiaoming.proto = student 原型对象

class继承

1、定义一个类,属性,方法

image-20210104184145751

image-20210104184105990

本质:查看对象原型 __ proto __ =Student
原型链Object:
prototype 在JavaScript 中,每一个函数都有一个prototype属性,整数型指向函数的原型对象

构造函数和原型和实例的关系:

每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的构造函数指针,而实例都包含一个指向对象的内部指针,那么假如我们让原型对象等于另一个类型的实例,结果会怎么样?显然,此时的原型对象将包含一个指向另一个圆形的指针,相应的,另一个原型中也包含一个指向另一个构造函数的指针。假如另一个原型又是另一个类型的实例,那么上述关系依然成立,如此层层递进,就构成了实例和原型的链条,这就是基本原型链的概念

image-20210104185307414

image-20210104185339648

操作BOM对象

BOM 浏览器对象模型
IE 6~12 Chrome(谷歌) Safari(苹果) FireFox(火狐 普遍Linux上) Opera(欧朋) 这些都是内核 其他的市三方

window   
window.alert(1)
//浏览器的内宽高
window.innerHeight
window.innerWidth
//浏览器的外宽高
window.outerHeight
window.outerWidth 

window 代表 浏览器窗口

Navigator

Navigator 封装了浏览器的信息

navigator.appName
"Netscape"
navigator.appVersion
"浏览器的版本和内核信息"
navigator.platform
"win32"

screen

代表屏幕尺寸

screen.width
1920px
screen.height
1080px

location 代表当前页面的URL信息

image-20210104210128256

document (内容 dom)
document.cookie 获取客户端的本地信息(前端获得的方式 )

劫持cookie原理

<script>aa.js</script>
<!-- 而已人员;获取你的cookie信息上传到他的服务器-->

服务器端可以设置cookie:httpOnly

session(后端获取的方式)

history history.back()//后退 history.forward()//前进

操作DOM对象

动态操作一棵树

浏览器网页就是一个Dom树形结构
更新:更新Dom节点
遍历dom节点:得到Dom节点
删除:删除一个Dom节点
添加:添加一个新节点
要操作一个Dom节点 ,就必须要获得这个Dom节点

获得Dom节点

image-20210104212439831

更新DOM节点

image-20210104212816444

操作文本

id1.innerText=’456’ 修改文本的值
id1.innerHTML=‘< strong >123</ strong>’ 可以解析HTML文本标签

操作JS

id1.style.color=‘red’//属性使用  字符串  包裹
id1.style.fontSize='20px' //驼峰命名问题
id1.style.fontSize='200px'
id1.style.padding='50px'
删除节点

删除节点的步骤:先获取父节点,在通过父节点删除自己

<div id="father">
    <h1 > 标题一</h1>
    <p id="p1"> p1</p>
    <p class="p2">p2</p>
</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值