字符串的常用方法
1. 增这里增的意思并不是说直接增添内容,而是创建字符串的一个副本,再进行操作
除了常用+以及${}进行字符串拼接之外,还可通过concat
1.1 concat()用于将一个或多个字符串拼接成一个新字符串
1234let stringValue = "hello ";let result = stringValue.concat("world");console.log(result); // "hello world"console.log(stringValue); // "hello"
2. 删这里的删的意思并不是说删除原字符串的内容,而是创建字符串的一个副本,再进行操作
常见的有:
slice()
substr()
substring()
这三个方法都返回调用它们的字符串的一个子字符串,而且都接收一或两个参数。
1234567let stringValue = "hello world";console.log(stringValue.slice(3) ...
数组的常用方法
1. 增
push() - 影响原数组
unshift() - 影响原数组
splice() - 影响原数组
concat() - 不影响原数组
1.1 push()push()方法接收任意数量的参数,并将它们添加到数组末尾,返回数组的最新长度
123let color = []; // 创建一个数组let a = color.push("red", "green"); // 推入两项console.log(a) // 2
1.2 unshift()unshift()在数组开头添加任意多个值,然后返回新的数组长度
123let color = []; // 创建一个数组let a = color.unshift("red", "green"); // 从数组开头推入两项alert(a); // 2
1.3 splice()splice()传入三个参数,分别是开始位置、0(要删除的元素数量)、插入的元素,返回空数组
1234let colors = ["red", "gre ...
前端面试知识点(js)01
1. typeof 与 instanceof 区别
typeof会返回一个变量的基本类型,instanceof返回的是一个布尔值
instanceof` 可以准确地判断复杂引用数据类型,但是不能正确判断基础数据类型
2. let var const 区别
1.var 声明的变量是存在变量提升的,let ,const声明的变量不存在变量提升。
变量提升:变量提升是指代码在未定义之前可以使用且不会报错
2.在同一作用域下var可以重复声明,let,const不可以重复声明。
3.var声明的变量不存在块级作用域, let,const声明的变量存在块级作用域。
4.var和let可以重新赋值 ,const声明的是一个常量,const声明的变量必须要进行初始化 不能够重新赋值 。
5.var声明的变量不存在暂时性死区,let,const声明的变量存在暂时性死区。
暂时性死区:在变量声明之前,任何的地方都不能去提前使用,一旦使用就会报错,那么这之前的这些代码,对于这个变量来说就是暂时性死区
3. 对作用域的理解作用域,即变量(变量作用域又称上下文)和函数生效(能被访问)的区域或集合。换 ...
浅谈BFC
1. BFC的定义BFC - Block Formatting Context 块级格式化上下文 BFC的定义,在官方文档到中,是这么介绍BFC的。
A block formatting context contains everything inside of the element creating it that is not also inside a descendant element that creates a new block formatting context.
翻译过来便是:一个BFC区域包含创建该上下文元素的所有子元素,但是不包括创建了新的BFC的子元素的内部元素。
比如:
12345678910<div class="box1" id="bfc1"> <div class="box2"></div> <div class="box3"></div> <div class="box4 ...
前端面试知识点(css)
1.display:none与visibility:hidden区别题目:display:none与visibility:hidden区别?
答案:display: none不占据空间,即不在文档流中,而visibility:hidden还在文档流中。
display: none子元素不可见。visibility:hidden的子元素如果设置visibility:visible则还可以看到。
2.隐藏元素的方法题目:有哪些隐藏元素的方法?
答案:display: none ; visibility: hidden ; opacity: 0 ;
也可以用left: -9999px或者transform: translateX(-9999px);将元素移出视口外部。
3.css画三角形题目:使用css画一个三角形
答案:
1234567891011121314151617181920<!DOCTYPE html> <html> <head> <title>test</title> < ...
浅谈浅拷贝和深拷贝
1.数据类型1.数据的基本类型分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和引用数据类型(Function,Array,Object)
2.基本数据类型的特点:直接存储在栈(stack)中的数据;引用数据类型的特点:存储的是该对象在栈中引用,真实的数据存放在堆内存里
引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。
2.浅拷贝和深拷贝的概念1.深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型
2.概念:
浅拷贝 :只复制指向某个对象的指针,而不复制对象本身,相当于是新建了一个对象,该对象复制了原对象的指针,新旧对象还是共用同一个堆内存地址
深拷贝:是新建一个一模一样的对象,该对象与原对象不共享内存,修改新对象也不会影响原对象
3.赋值和浅拷贝1.赋值:
当我们把一个对象赋值给一个新的变量时,赋的其实是该对象的在栈内存中的地址,而不是堆内存中的数据。也就是两个对象指向的是同一个存储空间,无论 ...
Vue+Node.js实现简单的前后端交互
1.搭建Vue项目1.在cmd中运行 vue ui,按照自己想要的配置进行搭建
1vue ui
2.在vue项目的根目录下安装axios 和Element UI
12npm install axios --savenpm i element-ui -S
3.安装完成后,在main.js中引入
123456import axios from 'axios'//引入axiosVue.prototype.$axios = axios;//把axios挂载到vue上import ElementUI from 'element-ui';import 'element-ui/lib/theme-chalk/index.css';Vue.use(ElementUI);
2.搭建Node.js项目1.新建一个 server 文件夹,作为项目的根目录,并运行命令
1npm init -y
2.安装 express,cors
12npm i express@4.17.1npm i cors@2.8.5
3.在项目根目录新建 app.js ...