js基础

作者: 新世纪好青年 | 来源:发表于2023-12-26 16:13 被阅读0次

JS 类型分类

JS内置数据类型有 8 种类型,分别是:undefined、Null、Boolean、Number、String、BigInt、Symbol、Object。

其中又可分为「基础类型」和「引用类型」。

「基础类型」:undefined、Null、Boolean、Number、String、BigInt、Symbol
「引用类型」:统称为 Object 类型。细分的话,有:Object 类型、Array 类型、Date 类型、RegExp 类型、Function 类型等。
依据「存储方式」不同,数据类型大致可以分成两类:

「基础类型」存储在「栈内存」,被引用或拷贝时,会创建一个完全相等的变量。
「引用类型」存储在「堆内存」,在「栈内存」存储的是地址,多个引用指向同一个内存地址。

常用遍历

for 数组循环遍历

let arr = [1, 2, 3];
for (let i = 0; i < arr.length; i++) {
    console.log(i, arr[i])
}

for each 数组/对象循环遍历

let arr = [1, 2, 3, 4, 5];
arr.forEach(function(element, index) {
  console.log(`Index: ${index}, Element: ${element}`);
});

let obj = { a: 1, b: 2, c: 3 };
Object.keys(obj).forEach(function(key) {
  console.log(`Key: ${key}, Value: ${obj[key]}`);
});

for in 数组/对象循环遍历

let array = ["admin","manager","db"]
for(var i in array){
    console.log(i);//0 1 2
}

let obj = {name: '张三', age: 18, city: '上海'};
for (var key in obj) {
  console.log(key + ': ' + obj[key]);
}
//name: 张三
//age: 18
//city: 上海

for of 数组/对象/字符串循环遍历
一文带你了解javascript中的for...of循环

const arr = [1, 2, 3, 4, 5]
for(const element of arr){
    console.log(element);//0 1 2
}

let obj = {name: '张三', age: 18, city: '上海'};
for (var key key of Object.keys(obj)) {
  console.log(key + ': ' + obj[key]);
}
//name: 张三
//age: 18
//city: 上海

const str = "Hello, World!";
for (const char of str) {
  console.log(char);
}

map,返回一个新数组,需要变量接收,map()不会改变原始数组,只能用来遍历数组

let arr = [1,2,3];
let newArr = arr.map(function(i){
    return i*2;
})
console.log(newArr)
// [2,4,6]

fifter返回一个新数组,需要变量接收,不会改变原始数组,只能用来遍历数组

let arr = [1,2,3];
let newArr = arr.filter(function(i){
    return i>1;
})
console.log(newArr)
// [2,3]

switch, while,do while等,可以参考:JS中的18种相关循环遍历的方法

数组常用方法

1.join 拼接

//拼接,拼接之后是个字符串类型
let arr=[1,2,3,4,5]
arr.join('+')//1+2+3+4+5

2.push,向数组的末尾添加元素并返回数组长度

let arr=[1,2,3,4,5]
arr.push(6)

3.unshift 向数组的开头添加元素并返回数组长度

let arr=[1,2,3,4,5]
let unshift_arr=arr.unshift("Tom");//['Tom',1,2,3,4,5]

4.concat 拼接数组

let arr=[1,2,3,4,5]
let arr1=[6]
let arrConcat=arr.concat(arr1)//[1,2,3,4,5,6]

5.slice 数组截取

//数组截取   arr.slice(start , end);
//start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
//end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
//返回值:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arr 中的元素。
let arr = [1,4,6,8,12];
let arrCopy1 = arr.slice(1);    // [4, 6, 8, 12]
let arrCopy2 = arr.slice(0,4);   // [1, 4, 6, 8] 
let arrCopy3 = arr.slice(1,-2); // [4, 6] 
let arrCopy4 = arr.slice(-5,4);// [1, 4, 6, 8]
let arrCopy5 = arr.slice(-4,-1) // [4, 6, 8]

6.splice() (数组更新,增删改)

// arr.splice(index , howmany , item1,…..,itemX)
//index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
//howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。
//item1, …, itemX:可选。向数组添加的新项目。
//返回值:含有被删除的元素的数组,若没有删除元素则返回一个空数组。

let arr = ["张三","李四","王五","小明","小红"];

/**************删除"王五"****************/
let arrReplace1 = arr.splice(2,1);  // ["王五"] 
console.log(arr);  // ["张三", "李四", "小明", "小红"] (原数组改变)

//删除多个
let arrReplace2 = arr.splice(1,2);   //  ["李四", "小明"] 
console.log(arr);  // ["张三", "小红"]

/**************添加"小刚"****************/
let arrReplace3 = arr.splice(1,0,"小刚");  // [] (没有删除元素,所以返回的是空数组)
console.log(arr);  // ["张三", "小刚", "小红"]

//添加多个
let arrReplace4 = arr.splice(3,0,"刘一","陈二","赵六");// []
console.log(arr);  // ["张三", "小刚", "小红", "刘一", "陈二", "赵六"]

/**************"王五"替换"小刚"****************/
let arrReplace5 = arr.splice(1,1,"王五");// ["小刚"]
console.log(arr);  // ["张三", "王五", "小红", "刘一", "陈二", "赵六"]

//替换多个
let arrReplace6 = arr.splice(1,4,"李四"); // ["王五", "小红", "刘一", "陈二"]
console.log(arr);  // ["张三", "李四", "赵六"]

7.indexOf()查找的项在数组中首次出现的位置,在没找到的情况下返回-1

let arr = [1,4,7,10,7,18,7,26];
console.log(arr.indexOf(7)); //2

8.includes()用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false

//arr.includes(searchElement ,  fromIndex)
//searchElement : 必须。需要查找的元素值。
//fromIndex:可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。

let arr = ["a","b","c","d"];
let result1 = arr.includes("b");//true
let result2 = arr.includes("b",2);//false

字符串常用方法

  1. charAt返回子字符串
 let str="hello world"; 
 console.log(str.charAt(1));//e 
  1. concat拼接
let str='123'
let str2=str.concat('78','01')//1237801

3.截取字符串 slice方法、substring方法、substr方法:

//slice(start, end) start开始的位置,end结束的位置(不包括),两个参数可正可负,负值代表从右截取
let str = "Hello";
let s = str.slice(1, 2);//e
let s = str.slice(1);//ello

//substring(start, end)start开始的位置,end结束的位置(不包括),可选,两个参数都为正数
let str = "Hello";
let s = str.substring(1, 2);//e
let s = str.substring(1);//ello

//substr(start, num)start开始的位置,num个数,可选,start参数可正可负,负数代表从右截取
let str = "Hello";
let s = str.substr(1, 2);//He
let s = str.substr(1);//ello

  1. indexOf 根据指定子串,从左向右查询字符,查询索引
//参数:1要查询的子串,2从哪个索引开始查询,可选
//返回值:索引 或 -1(没有查找到)
let str = "Hello";
let s = str.indexOf("e");//1
  1. trim 删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等
let str = "    Hello   ";
let s = str.trim();//Hello
  1. split 分割成字符串数组
let str = "Hello";
let s = str.split("e");[ 'H', 'llo' ]
  1. replace/replaceAll 替换
//替换一个
let s = str.replace("l", "o"); //Heolo

//全局替换
let str = "Hello";
let s = str.replaceAll("l", "o"); //Heooo

dom的常用操作

js

1.获取元素

document.getElementById(id): 根据元素的id属性获取元素。

document.getElementsByName(name): 根据元素的name属性获取元素。

document.getElementsByClassName(className): 根据元素的class属性获取元素。

document.getElementsByTagName(tagName): 根据元素的标签名获取元素。

document.querySelector(selector): 根据选择器获取第一个匹配的元素。

document.querySelectorAll(selector): 根据选择器获取所有匹配的元素。

 var a = document.getElementById("dom");
 var b = a.childNodes;      //获取a的全部子节点
 var c = a.parentNode;     //获取a的父节点
 var d = a.nextSbiling;     //获取a的下一个兄弟节点
 var e = a.previousSbiling; //获取a的上一个兄弟节点
 var f  = a.firstChild;       // 获取a的第一个子节点
 var g = a.lastChild;         //获取a的最后一个子节点

2.创建元素

document.createElement(tagName): 创建一个指定标签名的元素节点。

document.createTextNode(text): 创建一个包含指定文本内容的文本节点。

3.修改元素属性和内容

element.setAttribute(name, value): 设置元素的属性值。

element.getAttribute(name): 获取元素的属性值。

element.innerHTML: 设置或获取元素的HTML内容。outerHTML

element.innerText: 设置或获取元素的文本内容。

4.添加和删除元素

parentElement.appendChild(newChild): 将一个新的子节点添加到指定父节点的子节点列表的末尾。

parentElement.removeChild(child): 从指定父节点的子节点列表中删除一个子节点。

jquery

相关文章

  • React-Native 随笔

    学习基础: js的基础知识, rect.js基础 JSX语法基础 FlexBox布局 安装 安装node.js下载...

  • 最新web前端相关课程学习链接

    js基础篇 js进阶篇 js高级篇 vue基础篇 vue高级篇 react基础 react高级 Nodejs基础 ...

  • web前端 -- Day23 js高级

    js基础 JavaScript简称:JS JS分三个部分: ECMAScript标准---基础的语法 DOM D...

  • 前端JavaScript面试技巧

    1-1 课程概述 要做什么?——讲解前端 JS 基础面试题 哪些部分?——JS 基础,JS-WEB-API,JS ...

  • 4/07day28_js基础

    day28_js基础 回顾 JS基础语法 JS运算符 JS流程控制语句 条件语句 JS的条件语句和Java语法基本...

  • 2018-12-20

    1.01.尚硅谷_JS基础_JS简介(1) 10.10.尚硅谷_JS基础_Null和Undefined(10) 1...

  • JS基础和WebAPIs的关联性

    学习ECMAscript标准规定的基本语法掌握JS基础语法只学习JS基础做不了网页交互效果学习JS基础语法是为了后...

  • 2019-07-27 前端面试题

    1.js的基础类型 js的基础类型包括 Undefined , Null , String ,Number ,...

  • 网络编程(十九) JavaScript(9)

    一、 JS的组成 1.1 JS基础阶段以及Web APIs阶段 【1】JS基础阶段 我们学习的生死ECMAScri...

  • 发现•分享—2019-01-17

    文章 JS JS 异步编程六种方案 JS基础—原型对象的那些事(一) JS基础—原型对象的那些事(二) CSS 综...

网友评论

      本文标题:js基础

      本文链接:https://www.haomeiwen.com/subject/fjulndtx.html