首页 > 编程语言 >javaScript

javaScript

时间:2023-01-20 17:56:32浏览次数:62  
标签:DOM 对象 可以 javaScript js var 节点

JavaScript是一门流行脚本

快速入门

跟css一样,可以直接写在html中,放在script标签中

alert可以弹出弹窗,内容用单引号

引入的时候一定要成对出现,不能自闭和

基本语法入门

  1. 变量:类似于python,变量不用写类型,这里统一写var,所有的变量都用var定义。如果不使用var直接写也不会报错,但是会成为全局变量,可能以后会出现问题。

    ES6中一般使用let定义局部变量,与var其实一样

    var 变量名=值

  2. 调试要在控制台中进行

    console.log()在控制台中打印变量

数据类型

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

number

js不区分小数与整数,都是number:123 12.3 10e3 -99 NaN(not a number) Infinity(无限大)

字符串

'abc' "abc"

  • 多行字符串编写:用``包住内容

  • 模板字符串

let name = "zheng";
let msg = `你好,${zheng}`;//结果为:你好,zheng。不需要用+
  • 字符串长度str.length
  • 字符串下标,可以直接用str[]数组方式取出字符
  • 大小写:方法toUpperCase,toLowCase
  • indexOf(查找),substring(截取)

bool

true false

逻辑运算

&& || !

比较运算符

=

== 等于(类型不一样,值一样也会为true(比如数字1和字符1))

===绝对相等(要求类型也一样)

NaN===NaN结果为假

null,undefined

空与未定义

数组

一系列对象,类型可以不相同

如果下标越界了,会给出undefined

var定义

  • 输出:可以直接输出数组
  • 长度length,可以通过给长度赋值改变数组大小
  • indexOf,slice(截取,返回一个新数组),push,pop,unshift(头部添加),shift(头部删除),sort,reverse,concat(拼接数组,返回新数组),join,

对象

var定义

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

Person person = new person;
//js如下
var person = {
    name:"zheng",
    age:3,
    tags(标签):['js','java']
}
//每个属性后要加逗号,最后一个不用
  1. 取对象的值:person.age

  2. 使用一个不存在的对象属性不会报错

  3. 动态的删减属性 delete

  4. 动态的添加 直接赋值

  5. 判断属性是否在这个对象中 xxx属性 in xxx对象(包含继承的)

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

Map和Set集合

Map

var map = new Map(['tom',100]);
var name = map.get('tom');
console.log(name);//得到100
//通过key得到value
//设置set,删除delete

Set

add delete has

iterator

for循环

forEach循环

通过for of(得到内容)/ for in(得到下标)

一般用of,in有bug

var arr = [3,4,5]
for(var x of arr){
	console.log(x)
}

函数

定义函数

方式1

function 方法名(参数){

}

方式2

var abs = function(参数){
}

调用函数

js中传入任意数量的参数都不会报错

解决方法

可以用arguments.length得到参数长度,arguments包含传入的所有参数

rest可以获得除了已经定义的所有的参数 function abs(a,b, ...rest),从第三个开始都会进入到rest中

可以用typeof判断传入的参数类型,如果错误可以直接手动抛出异常

变量的作用域

在js中,var定义的变量时有作用域的

在函数体内声明,函数体外不能用(想要实现的话要用闭包)

内部函数可以访问外部函数的成员

如果内部变量与外部变量重名,从内向外查找

规范:所有变量定义在函数的头部,便于代码维护

默认所有的全局变量都会绑定在window对象上

alert本身也是window的一个变量

规范:防止多个文件调用全局变量导致冲突,一般不把全局变量绑定到window上

//唯一全局变量
var App = {};

//定义全局变量
App.name = "zheng";
App.add = function(a,b){
	return a+b;
}
//把自己的代码全部放入自己定义的唯一空间名字中,降低全局命名冲突的问题

局部作用域let,放入for循环中,循环语句外的不能使用

常量const,ES6才有,之前是约定纯大写字母命名的变量就是常量(其实可以修改)

方法

this是指向调用他的对象

apply可以控制指向的对象

JSON对象

是一种数据传输格式

在js中一切皆为对象,任何js支持的类型都可以用JSON表示

格式

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

可以使用JSON.stringify将对象转换为JOSN对象

使用JSON.parse将JSON对象转换为对象

JSON与JS对象的区别

var obj = {a: 'hello' , b: 'hellob'};
var json = '{"a": "hello" , "b": "hellob"}';//本身是一个字符串

面向对象

js中的类叫做原型proto

老版js想要继承要用xiaoming. __proto__ = student,意思为小明的原型是学生

class关键字是在ES6后引入的,可以直接定义类

constructor(name){}//构造器
hello(){}//方法

创建实例对象的方法与java相似

继承:extends与java一样

操作BOM对象:

BOM:浏览器对象模型

window代表浏览器窗口

  • 可以获取内外的高度与宽度

screen代表屏幕的尺寸

  • 获取屏幕的高度宽度

location代表当前页面的URL信息

  • 协议protocol
  • 刷新网页reload:f reload()
  • 设置新的地址location.assign('新的网址')

document代表当前的网页

  • title标签的名字
  • getElementById获取具体的文档树节点
  • cookie获取面包碎

history网页历史记录

  • back返回
  • forward前进

操作DOM对象

DOM:文档对象模型

整个浏览器网页就是一个DOM树形结构

  • 更新:更新DOM节点
  • 遍历DOM节点:得到DOM节点,上面BOM对象可以通过Id等信息得到节点
  • 添加/删除一个DOM节点

获取DOM节点

要操作一个DOM节点就要先获得他

document.getElementsById/TagName/ClassName

.chileren可以获取父节点下的所有子节点,firstChild,lastChild

更新节点

对象名.innerText修改文本的值

.innerHTML可以解析HTML文本标签

.style的一系列方法可以改变样式

删除节点

先获取父节点(.parentElement),再通过父节点删除自己 .removeChild(子节点)。子类保存在父类的children数组中

删除节点的时候,children数组是在时刻变化的

插入节点

我们获得了某个Dom节点,假设这个dom节点是空的,我们通过innerHTML就可以增加一个元素了,但是这个DOM节点已经存在元素了,我们就不能这么干了!会产生覆盖

追加append

创建creatElement,使用.id赋值id,还可以创建一个script标签

newP.setAttribute('id','newP');
//等价于
mewP.id = 'newP';

使用insertBefore可以插入到某一个标签的前面

a.insertBefore(b,c) a要包含bc节点,把b插到c的前面

替换节点

replace

操作表单(验证)

表单form,本身也是DOM树的一个节点

  1. 文本框 text
  2. 下拉框 select
  3. 复选框,单选框 checkbox,radio
  4. 隐藏域 hidden
  5. 密码框 password
  6. .......

表单的目的就是提交信息

//用button替换submit,button绑定一些判定函数
<button type="button" onclick="">提交</button>
//onclick为被点击
  

获得提交的信息

DOM定位

.value得到值

.value = 可以赋值

对于单选框,多选框等固定的值,用value只能取到当前的值。用.check可以检测是否被选中

jQuery

jquery里面存在大量的javascript函数

公式: $(selector).action() 选择器就是css选择器

$('p').click();//标签选择器
$('#id').click();//id选择器
$('.class').click();//类选择器

时间

鼠标事件,键盘事件,

当网页元素加载完毕后响应事件

$(function(){ });

严格检查模式strict

在js的第一行加入加入一行 'use strict' 就可以打开这个模式

结语

巩固js 看jQuery源码,看游戏源码

巩固HTML,CSS 扒网站,对应修改看效果

标签:DOM,对象,可以,javaScript,js,var,节点
From: https://www.cnblogs.com/zaughtercode/p/17062948.html

相关文章

  • JavaScript 中断forEach循环
    1、使用Array.prototype.some()方法代替some()方法会在找到第一个符合条件的元素时停止循环。例如:letarray=[1,2,3,4,5];array.some(function(element,inde......
  • javaScript
    JavaScript是一门流行脚本快速入门跟css一样,可以直接写在html中,放在script标签中alert可以弹出弹窗,内容用单引号引入的时候一定要成对出现,不能自闭和 基本语法入门......
  • JavaScript 函数所能传递的最大参数
    取决于实现,取决于浏览器和操作系统标准没有规定(65535一般是有的)来源:https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-fun......
  • Javascript数字精度丢失的问题,如何解决
    一、问题分析计算机存储以二进制的方式,而0.1在二进制中是无限循环的一个数字,所以会出现裁剪,精度丢失会出现,0.100000000000000002===0.1,0.200000000000000002===0.2......
  • javascript的防抖与节流
    一、节流一段时间内只能触发一次,如果这段时间内触发多次事件,只有第一次生效会触发回调函数,一段时间过后才能再次触发(一定时间内只执行第一次)应用场景1、鼠标连续不断......
  • JavaScript事件循环
    一、是什么先,JavaScript是一门单线程的语言,意味着同一时间内只能做一件事,但是这并不意味着单线程就是阻塞,而实现单线程非阻塞的方法就是事件循环在JavaScript中,所有的任......
  • javaScript数组的sort()方法
    javaScript数组的sort()方法:今天再学习javaScript的数组的Array.sort()方法时,遇到了一个很有意思的问题,这个方法,直接调用,其实并不会得到我们想要的排序,而是会以一种很机械......
  • JavaScript学习笔记—instanceof和hasOwn
    1.instanceof用来检查一个对象是否是一个类的实例检查的是对象的原型链上是否有该类实例(只要原型链上有该类实例,就会返回true)Object是所有对象的原型,所以任何对象和Ob......
  • JavaScript trim() 方法
    JavaScripttrim()方法JavaScriptString对象去除字符串的头尾空格:varstr="Runoob";alert(str.trim());输出结果:Runoob定义和用法:trim()方法用于删......
  • JavaScript学习笔记—原型对象
    1.访问一个对象的原型对象(1)对象.__proto__(2)Object.getPrototypeOf(对象)一般用第二种,第一种不安全2.原型对象中的数据(1)对象中的数据(属性、方法等)(2)constructor(对象......