js语法入门与dom操作

目录

一、js语法

1.变量声明

2.数据类型

3.运算符

4.分支语句

(1)if...else 语句

(2)嵌套 if...else 语句

(3)switch 语句

5.循环语句

(1)for 循环

(2)while 循环

(3)do...while 循环

(4)for...in 循环

(5)for...of 循环

6.字符串

7.数组

8.对象

(1)对象的创建

(2)构造函数方式

(3)Object.create() 方式

(4)访问属性

(5)添加属性

(6)删除属性

9.原型与原型链

10.常用内置对象JSON、Date、Math

(1)JSON

(2)Date

(3)Math

二、dom操作

1.获取元素

2.绑定事件

一、js语法

1.变量声明

(1)var 声明的变量具有函数作用域,意味着在函数内部声明的变量在函数外部无法访问,但在函数内部的任何位置都可以访问。

使用 var 声明的变量会被提升到其所在作用域的顶部,这意味着可以在变量声明之前访问该变量,但此时变量的值为 undefined

(2)let 声明的变量具有块级作用域,块级作用域由 {} 界定,如 if 语句、for 循环等。在块级作用域内声明的变量在块外部无法访问。

let 声明的变量不会被提升到作用域顶部,在变量声明之前访问会导致引用错误。

(3)和 let 一样,const 声明的常量也具有块级作用域

一旦常量被赋值,就不能再重新赋值。

2.数据类型

数据类型:undefined number string boolean null(object)

3.运算符

算数运算符:+ - * / % **

赋值运算符:= += -= *= /= %= **= ++a a++

++a:先加1再返回

 a++:先返回再加1

 比较运算符:> < >= <= ==(值等于即为真 如:10="10"为真) != ===(全等于:值与类型均等于为真)

 逻辑运算符:&& || !

 三元运算符:如:console.log(a > b ? "hello" : "hi"),若a>b返回hello,若a<b返回hi。

4.分支语句

(1)if...else 语句

if (condition) {
    // 当 condition 为 true 时执行的代码块
} else {
    // 当 condition 为 false 时执行的代码块
}

(2)嵌套 if...else 语句

let score = 85;
if (score >= 90) {
    console.log("成绩优秀");
} else if (score >= 80) {
    console.log("成绩良好");
} else if (score >= 60) {
    console.log("成绩及格");
} else {
    console.log("成绩不及格");
}

(3)switch 语句

switch (expression) {
    case value1:
        // 当 expression 的值等于 value1 时执行的代码块
        break;
    case value2:
        // 当 expression 的值等于 value2 时执行的代码块
        break;
    default:
        // 当 expression 的值与所有 case 都不匹配时执行的代码块
}

5.循环语句

(1)for 循环

// 打印 1 到 5 的数字
for (let i = 1; i <= 5; i++) {
    console.log(i);
}

(2)while 循环

// 打印 1 到 5 的数字
let j = 1;
while (j <= 5) {
    console.log(j);
    j++;
}

(3)do...while 循环

// 打印 1 到 5 的数字
let k = 1;
do {
    console.log(k);
    k++;
} while (k <= 5);

(4)for...in 循环

const person = {
    name: 'John',
    age: 30,
    occupation: 'Engineer'
};

for (let key in person) {
    console.log(key + ': ' + person[key]);
}

(5)for...of 循环

// 遍历字符串
const str = 'hello';
for (let char of str) {
    console.log(char);
}

6.字符串

let s = "heLLo wOrld";

(1)字符串长度:console.log(s.length);

(2)根据索引找元素:console.log(s.charAt(6),s[6]);

(3)根据元素找索引:console.log(s.indexOf("w"));

(4)判断字符串是否包括元素:console.log(s.includes("e"));

(5)获取指定范围元素(不包括右边):console.log(s.slice(6,8));

(6)替换(不改变元字符串): console.log(s.replace("hello","hi",s));

 (7)切割console.log(s.split(" "));

(8)判断是否一某元素开头结尾: console.log(s.startsWith("h"),s.endsWith("d"));

(9)全小写 全大写:console.log(s.toLowerCase(),s.toUpperCase());

(10) 剔除空格   trimStart(剔除左边) trimEnd(剔除右边): console.log("   123456   ".trim(),"   123456   ".trimStart(),"   123456   ".trimEnd());

7.数组

let l = [1, 3, 5];

(1) 获取数组元素索引:l.indexOf(3);

(2)末尾插入:l.push(7);

(3)头部插入:l.unshift(0);

(4)末尾删除: let r = l.pop()

(5)头部删除:let r = l.shift()

(6)索引 删除个数 插入的元素:l.splice(1, 0, 2);

(7)对数组的每个元素执行一次(数组项 索引 数组)

 l.forEach((item, index, array)=>{

 console.log(item, index, array);

})

(8)判断所有元素是否满足条件

 let r = l.every((item, index)=>{

 return item > 0;

 })

(9)判断是否有元素满足条件

let r = l.some((item, index)=>{

 return item > 4;

 })

(10)找到一个满足条件的元素

let r = l.find(function(item, index){

 return item > 2;

 })

(11)过滤所有满足条件的元素

let r = l.filter(function (item, index) {

return item > 2;

 })

(12)数组逆序

 l.reverse();

(13) 正序

 l.sort()

(14)逆序

 l.sort((a, b)=>{

 if (a > b){

 return -1;

 }

return 1;

})

(15)数组是否包括该元素

l.includes(5)

(16)切割

 一个数默认到最后:

l.slice(1);

两个数限定切割范围(不包括右边):

l.slice(1,2);

8.对象

       对象是一种无序的数据集合,由键值对构成,键通常是字符串,值可以是任意数据类型,包括其他对象。

(1)对象的创建

// 创建一个简单的对象
const person = {
    name: 'John',
    age: 30,
    isStudent: false
};

(2)构造函数方式

// 使用构造函数创建对象
function Person(name, age, isStudent) {
    this.name = name;
    this.age = age;
    this.isStudent = isStudent;
}

const anotherPerson = new Person('Jane', 25, true);

(3)Object.create() 方式

// 创建一个原型对象
const proto = {
    sayHello() {
        console.log(`Hello, my name is ${this.name}`);
    }
};

// 使用 Object.create() 创建对象
const yetAnotherPerson = Object.create(proto);
yetAnotherPerson.name = 'Bob';
yetAnotherPerson.sayHello(); 

(4)访问属性

const person = {
    name: 'John',
    age: 30
};

// 点号表示法
console.log(person.name); 

// 方括号表示法
console.log(person['age']); 

(5)添加属性

person.gender = 'Male';
person['hobby'] = 'Reading';

(6)删除属性

delete person.gender;

9.原型与原型链

// 创建一个普通对象
const person = {
    name: 'John',
    age: 30
};

// 访问对象的原型
const prototype = person.__proto__;
console.log(prototype === Object.prototype); 

10.常用内置对象JSON、Date、Math

(1)JSON


JSON.stringify(value, replacer, space):将对象或值转换为 JSON 字符串。
JSON.parse(text, reviver):将 JSON 字符串解析为对象。

(2)Date

new Date():创建一个表示当前日期和时间的对象
getFullYear():返回年份
getMonth():返回月份
getDate():返回日期
getHours():返回小时
getMinutes():返回分钟
getSeconds():返回秒
setFullYear(year):设置年份
setMonth(month):设置月份
setDate(date):设置日期

(3)Math


Math.abs(x):返回 x 的绝对值
Math.ceil(x):向上取整
Math.floor(x):向下取整
Math.max(x1, x2, ..., xn):返回一组数中的最大值
Math.min(x1, x2, ..., xn):返回一组数中的最小值
Math.pow(x, y):返回 x 的 y 次幂
Math.sqrt(x):返回 x 的平方根
Math.random():返回一个介于 0(包含)和 1(不包含)之间的随机数

二、dom操作

1.获取元素

(1)getElementById:根据id获取唯一元素 返回单个元素

(2)getElementsByClassName:根据类名获取多个元素 返回数组

(3)getElementsByTagName:通过标签获取多个元素 返回数组

(4)querySelector:根据选择器找到第一个匹配的 返回单个元素

(5)querySelectorAll:根据选择器找到多个匹配的 返回数组

2.绑定事件

(1)window

onload:整个页面加载完成后触发

onscroll:滚动条滚动时触发

onresize:浏览器窗口大小改变时触发

(2)鼠标

 onclick:鼠标点击

ondblclick:鼠标双击

onmouseenter:鼠标进入

onmouseleave:鼠标离开

onmousemove:鼠标移动

onmousedown:鼠标按下

onmouseup:鼠标抬起

oncontextmenu 鼠标点击右键显示菜单(return false不显示菜单)

(3)键盘

onkeydown    onkeypress    onkeyup

(4)input

oninput   onchange   onblur   onfocus   onkeydown    onkeypress    onkeyup

(5)form
onsubmit

(6)阻止事件冒泡:onPropagation

(7)阻止默认事件:preventDefault

(8)事件监听器

addEventListener       removeEventListener

(9)获取、设置元素的内容,属性,样式

内容:innerText innerHTML

属性:getAttribute hasAttribute setAttribute removeAttribute  this.属性名 this.属性名=属性值

样式:设置:this.style.样式属性名(小驼峰)= 样式属性值

           获取:行内样式:this.style.样式属性名

                      内部样式表、外部样式表:getComputedStyle(obj).样式属性名

(10)相关元素
       获取子元素
       children    firstElementChild   lastElementChild
       获取父元素
       parentElement
       获取兄弟元素
       previousElementSibling    nextElementSibling

(10)创建删除元素
    创建元素
     createElement(“标签名”)
    插入元素
    父元素.appendChild(子元素)
    删除元素
    yuansu.remove()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值