【面试题】JavaScript面试题详细总结(一)

news2025/1/13 16:46:43

js基础部分


01 值类型与引用类型


1.1 问法
  • js判断数据类型?
  • js值类型与引用类型有哪些?
  • 值类型与引用类型的区别?
1.2 介绍

JavaScript存储数据两个区域:栈和堆

栈:通常空间是固定的(占据空间小、大小固定)

堆:通常空间是动态的分配(占据空间大,大小不固定)

ES5值类型:Boolean(布尔值)、String(字符串)、Number(数字)、Undefined(未定义)、Null(空(特殊))

ES5引用类型:Object(对象)、Array(数组)、Function(函数)

ES6值类型:Symbol(符号)

ES6引用类型:Map(图)、Set(集合)、Promise(承诺)

1.3 code分析
  • 值类型
var a = 15;  //值类型
var b = a;   //把a的值赋值给b
b = 50;
console.log(a);  //15
console.log(b); //50

可以这样理解:

keyvalue
a15
b50
  • 引用类型
var d = {age:18};//d 是引用类型 key存储在栈中 真正的值存储在堆中 
var e = d; //把d 的引用地址赋值给e,(e与d都指向同一块存储地址)
e.age = 35;
console.log(d.age);//35

可以这样理解:

key地址
d{age:18}{age:18}
e{age:18}
当e.age = 35;执行之后
d{age:35}{age:35}
e{age:35}
1.4 回答
  • 值类型与引用类型的区别?

答:

  1. 值类型 keyvalue 都存储在 js 内存栈中;

  2. 引用类型key存储在栈中,真正的值存储在堆中;

  3. 把引用类型赋值给一个变量,其实是把变量的引用类型的地址指向引用类型堆中地址。

  • 值类型与引用类型有哪些?

答:

  1. 值类型(或简单数据类型):String、Number、Boolean、Symbol、Undefined、Null
  2. 引用类型(复杂数据类型):Array、Object、Function、Set、Map

02 数据类型检测的方式

2.1 typeof

typeof 只能判断 是否为值类型或者引用类型,引用类型除函数都返回的是 object

  • code
console.log(typeof "abc");  //string
console.log(typeof 123);    //number
console.log(typeof true);    //boolean
console.log(typeof undefined);   //undefined
console.log(typeof null);    // Object(null 空指针)
console.log(typeof function(){});   //function
console.log(typeof {});   //object
console.log(typeof []);   //object
typeof new Map()      //'object'
typeof new Set()    //'object'
typeof Symbol      //'function'
typeof Symbol()   //'symbol'

其中数组、对象、null都会被判断为 object

2.2 instanceof

instanceof 含义:是不是某个对象的实例(是数组还是对象。

instanceof 只能正确判断引用数据类型,而不能判断基本数据类型。instanceof 运算符可以用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。

  • code
var a = [1,2,3];
console.log(a instanceof Array); // true  a是数组的实例
console.log(a instanceof Object);//true  a是数组的实例,数组也是对象object

var b = {age:18};
console.log(b instanceof Array); //false b不是数组的实例
console.log(b instanceof Object); //true   b是对象的实例
  • 控制台打印

在这里插入图片描述

2.3 constructor

constructor 有两个作用:

  1. 判断数据的类型
  2. 对象实例通过constructor对象访问它的构造函数。

需要注意的是:如果创造一个对象来改变它的原型,constructor就不能用来判断数据类型了;

  • code
console.log((2).constructor === Number); //true
console.log((true).constructor === Boolean); //true
console.log(("str").constructor === String); //true
console.log(([]).constructor === Array); //true
console.log((function(){}).constructor === Function); //true
console.log(({}).constructor === Object); //true
var a = [1,2,3];
console.log(a.constructor === Array); // true
console.log(a.constructor === Object);//false

var b = {age:18};
console.log(b.constructor === Array); //false
console.log(b.constructor === Object); //
  • 控制台打印

在这里插入图片描述

数组专用 Array.isArray()

  1. Array.isArray()用于确定传递的值是否是一个Array
  • 语法
Array.isArray(value) 
  • 参数

    value 需要检测的值。

  • 返回值

    如果值是 Array,则为true;否则为false。

  • code

// 下面的函数调用都返回 true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array('a', 'b', 'c', 'd'))
Array.isArray(new Array(3));
// 鲜为人知的事实:其实 Array.prototype 也是一个数组。
Array.isArray(Array.prototype);

// 下面的函数调用都返回 false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray('Array');
Array.isArray(true);
Array.isArray(false);
Array.isArray(new Uint8Array(32))
Array.isArray({ __proto__: Array.prototype });
2.4 Object.prototype.toString.call()

Object.prototype.toString.call() 最准确判断数据类型方法。

Object.prototype.toString.call() 使用Object对象的原型方法toString 来判断数据类型。

  • code
var a = Object.prototype.toString;

console.log(a.call(2)); //'[object Number]'
console.log(a.call("str")); //'[object String]'
console.log(a.call(true));//'[object Boolean]'
console.log(a.call([])); //'[object Array]'
console.log(a.call(function(){})); //'[object Function]'
console.log(a.call(undefined)); //'[object Undefined]'
console.log(a.call(null)); //'[object Null]'
console.log(a.call(/ /)); //'[object RegExp]'
console.log(a.call(document.body)); //'[object HTMLBodyElement]'
  • 控制台打印

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-poKtujDS-1669036289065)(C:\Users\khy\AppData\Roaming\Typora\typora-user-images\image-20221115224711639.png)]

  • 封装一个函数
 // Object.prototype.toString.call()
function getType(obj){
	return Object.prototype.toString.call(obj).sclice(8,-1);
}
 // Object对象 protype原型.toString转换为字符串  slice分割 从第8位到-1位

在这里插入图片描述

03 深拷贝与浅拷贝

3.1 浅拷贝

浅拷贝:只拷贝值类型,引用类型还是指向地址

var obj1 = {
    name:"liang",
    age:18,
    friend:["小红","小绿"{
            name:"小蓝",job:"teacher"
            }]
}
  • 01 ES6 扩展
var obj2 = {
    ...obj1
}
//浅拷贝(如果属性值是引用类型,两个变量的属性都指向同一个内存地址)
  • 02 循环
var obj3 = {};
for(var k in obj1){
    obj3[k] = obj1[k];
}
  • 03 Object.assign 把参数的两个对象进行合并,属性相同后面覆盖前面
var obj4 = Object.assign(obj1,{})
  • 控制台操作

在这里插入图片描述

3.2深拷贝

深拷贝:目标对象与源对象相互之间切断联系

var obj1 = {
    name:"xiaoyuan",
    age:18,
    friend:["小红","小绿"{
            name:"小蓝"job:"teacher"
            }],
    say(){
        alert("你好我是" + this.name)
    }
}
  • JSON 转字符,字符串转对象
var obj2 = JSON.parse(JSON.stringify(obj1))
//JSON字符串的值只会保留 数组,对象,字符串,数字,null,undefined
//对象中的函数会被过滤掉( 一般数据也是不带函数的)
3.2.2先介绍一下递归的概念

递归:递归就是函数自己调用自己,要有结束条件

//需求:计算从1+2+..+5;
function add(n){
    if(n == 1){   //如果n是1,直接返回(递归函数的结束条件) 
        return 1
    };
    return n + add(n - 1)
}
alert(add(5))  //15

//分析
/* 
当n=1时,add(1) ==> 返回1
当n=2时,add(2) ==> 返回2+add(1) ==>2+1
当n=3时,add(3) ==> 返回3+add(2) ==> 3+2+1
当n=4时,add(4) ==> 返回4+add(3) ==> 4+3+2+1
当n=5时,add(5) ==> 返回5+add(4) ==> 5+4+3+2+1
*/
  • 斐波那契数列

求斐波那契 数为n的数列

  1. 下一个数等于前面两个数之和,第0位和第1位返回的是1
  2. 1,1,2,3,5,8,13,21,34,55,89,…
function fib(n){
    if(n == 0 || n == 1){ //如果是第0位返回1,如果是第1位返回1
        return 1
    }else{
        return fib(n - 1) + fib(n - 2) //如果其他位 返回 前面两个数的和
    }
}

// alert(fib(41));此种方法计算有局限,最高计算到41位

//分析
/*
n=0时,fib(0)==>  return 1
n=1时,fib(1)==>  return 1
n=2时,fib(2)==> return  fib(1)+fib(0)==>1+1=2
n=3时,fib(3)==> return  fib(2)+fib(1)==>2+1=3
n=4时,fib(4)==> return  fib(3)+fib(2)==>3+2=5

*/
  • 升级
function getFib(n){
    //如果小于1 返回1
    if(n <= 1){
        return 1
    }else{
        //做数组arr
        var arr = [1,1]
        //从第2位开始算
        for(var i = 2;i <= n;i++){
            arr.push(arr[i - 1] + arr[i - 2])
            //第n位数 是前面两个数的和
        }
        //console.log(arr)
        return arr.pop()  //返回最后一个(删除并返回最后一个)
    }
}

alert(getFib(45))

  • 通过判断类型 递归深拷贝

深拷贝:目前对象与源对象相互之间切断联系

递归就是函数调用自己,一定要有结束条件

		var obj1 = {
			name: 'mumu',
			age: 18,
			friend: ["小红", "小绿", {
				name: '小蓝',
				job: 'teacher'
			}],
			say() {
				alert("你好我是" + this.name)
			}
		}
		//如果是数组需要递归,如果是对象需要递归,如果是值类型递归结束
		function deepCopy(obj) {
			//typeof 是object 不是null
			if (typeof obj == "object" && obj != null) {
				//引用类型
				var temp = null;
				//如果是数组
				if (obj instanceof Array) {
					//要返回的结果应该是个数组
					temp = [];
					for (var i = 0; i < obj.length; i++) {
						temp = [];
						//递归拷贝数组
						for (var i = 0; i < obj.length; i++) {
							//temp[i]=obj[i] //**这样就是普通浅拷贝
							temp[i] = deepCopy(obj[i]); //递归拷贝
							//函数自己调用自己 返回的 拷贝 obj[i]的结果
						}
					} else {
						//返回的结果就是对象
						temp = {};
						//递归拷贝对象
						for (var k in obj) {
							temp[k] = deepCopy(obj[k]);
						}
					}
					//返回的结果
					return temp;
				} else {
					//非引用类型或者其他
					return obj
				}
			}
			var obj2 = deepCopy(obj1);
			// var obj1 = {
			// 	name: 'mumu',
			// 	age: 18,
			// 	friend: ["小红", "小绿", {
			// 		name: '小蓝',
			// 		job: 'teacher'
			// 	}],
			// 	say() {
			// 		alert("你好我是" + this.name)
			// 	}
			// }
		}
		//01 进入deepCody 函数
		// typeof obj1 结果就是object 并且不是null
		// 02 obj1 instanceof Array 结果是 false
		// temp ={}
		// for (var k in obj1){
		// 	temp[k] = deepCopy(obj1[k]);
		// }
		//03 return temp;//返回temp 对象(拷贝好的对象)
		// ====================================2.1
		// temp[name] = deepCopy(obj1["name"])  deepCopy("mumu")
		// typeof "mumu" 不是object 也不是null return "mumu"
		// temp[name] = "name"  
		// ===================================2.2
		// temp[age]=deepCopy(obj1["age"])  deepCopy(18)
		// typeof 18 不是object  也不是 null  return 18
		// temp[age] = 18
		// ==================================== 2.2
		// temp["friend"] =deepCopy(obj1["friend"])
		// ===========================================2.2.1
		// typeof ["小红","小绿",{name:"小蓝",job:"teacher"}] 结果是object 也是null
		// ["小红","小绿",{name:"小蓝",job:"teacher"}]  instanceof 结果为true
		// temp["friend"] = 
		// for(var i = 0;i<["小红","小绿",{name:"小蓝",job:"teacher"}].length;i++ ){}
		//----------------------------只要是引用类型就递归拷贝下去,直到拷贝typeof 不会object

04 数据类型转换

4.1 隐式转换

数据类型转换:强制转换,隐式转换

强制转换

  1. Number()转换为数字,
  2. String() 转换为字符串
  3. Boolean() 转换为布尔值

隐式转符号

  1. +字符串连接符号(隐式转换为字符串)
  2. 数学运算:+ - * / (隐式转换为数字)
  3. >< >= <= || && ! 比较与逻辑(隐式转换为布尔值)
  • +字符串连接符号 会尝试把其他类型转换为 字符串
//字符串和任意数据 + 连接 都会转换为字符串
var a = "100";
var b = 10;
var c = a + b;
alert(c);//10010
  • 数学运算符号会尝试隐式 转换为数字

    如果数据没有转换数字成功,结果就是NaN

    true 转换为数字,默认转换为1;false默认会转换为0

//+ - * /  == 会尝试把其他类型转换为数字
//转换失败 NaN
//false 转换为 0
//true 转换 1
var a = "10";
var b = 2;
var c = a * b;
console.log(c);//20

var a = "abc10";
var b = 2;
var c = a * b;
console.log(c);//NaN

var a = true;
var b = 2;
var c2 = a * b;
console.log(c2)  //2

var a = false;
var b = 2;
var c3 = a * b;
console.log(c3)  //0
  • 逻辑与比较运算符号,会把变量转换为布尔值

​ 空字符串,0,null,undefined,NaN,false 才会被转换为false,其他都会被转换为true;

​ 把以上的变量值称为falsely变量值,其他的变量都称为truely变量值

//><>= <=  ! !=  ==  判断与逻辑返回会尝试把其他类型转换布尔值
//falsely变量转换为false
// "" null NaN undefined 0 转换为false
var a = "";
console.log(!!a); //false
console.log(!!-1); //true
console.log(!!NaN) //false
4.2 严格等于

== (等于) 判断隐式转换后值是否相等

=== (严格等于) 判断类型与值是否相对

  • ==
console.log(100 == "100");  //true(如果两边类似数字会优先隐式转换为数字)
console.log("" == false);  //true
console.log(1 == true);// true
console.log(null == undefined);// true 隐式转换后都为fasle
console.log(null == null);  // true  空指针都指向一个地方(空)
console.log(undefined == undefined);//
console.log(null == NaN);false(特殊) 数字不等于空
console.log([] == []);//false  //两块不同的内存地址
console.log({}== {});//false  //两块不同的内存地址

在这里插入图片描述

  • ===
// === 严格等于 判断类型 与值 是否相对
alert(0 === ""); //false
alert([] === []); //false
alert({} === {}); //false
alert(null === undefined); //false
alert(null === null); //true

//应该都用=== 严格等于
//判断是为null 还是undefined 可以用===

在这里插入图片描述

  • 什么时候用=== 什么时候用==

答:应该在任何时候都使用=== (当判断是否为null或者为undefined可以为特例)

05 if与逻辑运算符

5.1 if
  1. if判断只要求()内 表达式结果是否为truely变量
  2. falsely变量:false “ ” 0 NaN false undefined null;对变量取两次反; !! 结果为false的变量,称为falsely变量
  3. 除了falsely变量外其他都是truely变量
var a = 10;
if(a){
    console.log("条件通过") //条件通过
}
//条件通过

var b = "";
if(b){
    console.log("b通过")
}else{
    console.log("b不通过")  
}
// b不通过
5.2 逻辑 或

A||B 或

A为真(truely) 结果为A ,否则结果为B

  • 如果前面的变量为truely,最终的结果为第一个,如果为falsely,结果为第二个
var a = 15 || 0;
var b = false || 50;
var c = false || undefined;
var d = 0 || false;
console.log(a); //15   15 转换结果为true ,a的值就是15
console.log(b);  //50  false 转换的结果为false  b的值是50
console.log(c);  // undefined   
console.log(d);  //false
  • 举个例子
//例子  num 取不到,或者为0, 或者为null  ....最终结果为5
var re = localStorage.getItem("num") || 5;
5.3 逻辑 且

A&&B 逻辑且

A为假(falsely) 结果为A,否则结果为B

  • 如果前面的变量为falsely,直接返回 前面的值;如果前面的变量是truely,则返回后面的值

在这里插入图片描述

  • 判断对象

if(a&&a.b&&a.b.c){}

if(a?.b?.c){}

如果有a并且有a.b并且有a.b.c

06 原型与原型链

6.1 什么是类,什么是实例

什么是类,什么是实例?

  • 类:创造对象实例的模板(本质上都是函数) ;如:Array 、Object 、String…
    • 构造函数 用new 来执行的函数
    • class xxx{}
  • 实例:就是由类创建的对象(本质上讲就是对象);如[1,2,3]{name:“mumu”},“abc”
6.2 显示原型与隐式原型

显示原型

  • 类/构造函数都有一个显示原型prototype(本质就是对象)

隐式原型

  • 每个实例都有一个隐式原型 __ proto __

显示原型与隐式原型的关系

  • 类显示原型prototype等于其创建的实例的隐式原型 __ proto __

  • var  arr = [];
    arr.__proto__ === Array.prototype;
    

在这里插入图片描述

6.3 原型链

原型链

  • 查找对象实例的方法和属性时,先在自身找,找不到沿着__ proto __ 向上查找,__ proto __ 形成的链条关系,我们称为原型链 (实现了js继承)

原型与原型链的作用

  • 实现了js 的继承
  • 实现了实例的公用属性和方法
  • 创建2个类解释原型与原型链(People,Student)
		//01 创建people类
		function People(name, age) {
			this.name = name;
			this.age = age;
		}
		//02 给people 显示原型添加eat方法
		People.prototype.eat = function() {
			console.log(this.name + "正在吃饭");
		}
		//03 创建 学生类继承People 类
		function Student(name, age, no) {
			//执行people构造函数(执行people 函数并把当前的this传入函数,当做people的this)
			People.call(this, name, age);
			//定义学号
			this.no = no;
		}
		//04 让Student 显示原型链继承 People 的原型链
		Student.prototype = Object.create(People.prototype);
		//05 修正Student 显示原型链 上的构造函数
		Student.prototype.constructor = Student;
		//06 在Student 显示原型链添加方法
		Student.prototype.study = function() {
			console.log(this.name + "正在好好学习");
		}
		//07 构建 Student 的实例s1
		var s1 = new Student("菜菜", 18, 9527);

在这里插入图片描述

  • 图示

在这里插入图片描述

6.4 js实现继承
  • class 的extends方法
class Student extends People{
    constructor(name,age,no){
     //类中继承构造函数
     super(name,age)
     ....
   }
}
  • 使用原型链
  1. Student构造函数中继承People
function Student(name,age,no){
  People.call(this,name,age)
  ....
}
  1. 继承原型链
Student.prototype = Object.create(People.prototype)
  1. 修正Student构造函数
Stuent.prototype.constructor = Student
  1. 图示

在这里插入图片描述

6.5 实例公用方法(扩展)

怎么样让所有的数组求最大最小值?(通用方法)

  1. 数组Array 的实例都拥有最大最小值方法
  2. 把自定义方法挂载到类的原型上
  3. 💛 可以在所有的数字实例上访问max(min)方法
  • 求最大值
Array.prototype.max = function(){
    return Math.max(...this);//this就是当前数组,展开求最大值
}
  • 求最小值
Array.prototype.min = function(){
    return Math.min(...this);//this就是当前数组,展开求最小值
}

在这里插入图片描述
在这里插入图片描述

  • 怎么样让字符串有通用翻转(reverse)方法
String.prototype.reverse = function(){
    return this.split("").reverse().join("");
}

在这里插入图片描述

准则1:不要需要js默认对象原型上的方法

准则2:不要在js默认对象的原型上添加方法

vue2 数组的双向绑定劫持就是重写了数组的原型上的方法实现的


更多面试题后续更新…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL基础|数据库存储时间段,数字从指定值递增AUTO_INCREMENT【详细版,建议收藏】

今天&#xff0c;在写SQL语句存储时间时遇到了一些问题&#xff0c;最后成功解决了 mysql基础一、时间字段的格式限制&#xff08;一&#xff09;精确到秒的表达1、错误的表达2、解决方式如下3、查看创建的表&#xff08;二&#xff09;存储一个时间段1、错误的表达语句2、解决…

一个优秀的程序员应该养成哪些好的习惯?

文章目录一、写代码前先想好思路&#xff0c;先规划框架&#xff0c;再到局部实现二、注重代码风格三、注重代码执行效率四、掌握一些编码原则五、解决问题时&#xff0c;对于原理性的问题&#xff0c;不要面向搜索引擎编程。六、注重基础知识的学习&#xff0c;不忙碌跟风新技…

分享美容美发会员管理系统功能的特点_分享美容美发会员管理系统的制作

人们越来越关心美发&#xff0c;美发行业发展迅速&#xff0c;小程序可以连接在线场景&#xff0c;许多美发院也开发了会员卡管理系统。那么一个实用的美发会员管理系统怎么制作呢&#xff1f;它有什么功能&#xff1f;我们一起来看看~&#xff08;干货满满&#xff0c;耐心看完…

艾美捷Immunochemistry FAM FLICA Poly Caspase检测方案

Caspases在细胞凋亡和炎症中发挥重要作用。ICT的FLICA检测试剂盒被研究人员用于通过培养的细胞和组织中的胱天蛋白酶活性来定量凋亡。FAM FLICA Poly Caspase探针允许研究人员评估胱天蛋白酶的激活。 用艾美捷Immunochemistry FAM-FLICA Poly caspase检测试剂盒检测活性半胱天冬…

2022年信息学部物联网工程学院学生科协机器学习科普

什么是机器学习 机器学习是一门多领域交叉学科&#xff0c;涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为&#xff0c;以获取新的知识或技能&#xff0c;重新组织已有的知识结构使之不断改善自身的性能。 它是人…

【安全学习】记一次内网环境渗透

注意&#xff1a; 本文仅用于技术讨论与研究&#xff0c;对于所有笔记中复现的这些终端或者服务器&#xff0c;都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习目的&#xff0c;如果列出的技术用于其他任何目标&#xff…

讲讲 Redis 缓存更新一致性,看了都说好!

当执行写操作后&#xff0c;需要保证从缓存读取到的数据与数据库中持久化的数据是一致的&#xff0c;因此需要对缓存进行更新。 因为涉及到数据库和缓存两步操作&#xff0c;难以保证更新的原子性。 在设计更新策略时&#xff0c;我们需要考虑多个方面的问题: 对系统吞吐量的影…

那些测试行业的细分岗位,你知道多少?薪资又如何?

软件测试是个需求多&#xff0c;就业机会大的职业。目前&#xff0c;我国具备软件测试能力的人员数量和市场需求相差巨大&#xff0c;巨大的市场空缺&#xff0c;使软件测试工程师从初级到高级&#xff0c;只需要 1 年甚至更短的时间来完成。所以作为一名软件测试工程师&#x…

【北亚数据恢复】不认盘的移动硬盘恢复数据案例解决方案

【案例一】 一块西数移动硬盘不小心摔了&#xff0c;插到电脑上就不认盘&#xff0c;之后没在其他的任何操作。这是比较典型的硬盘故障类型&#xff1a;故障原因就是移动硬盘磁头损坏。 北亚数据恢复工程师在用户同意的前提下开盘&#xff0c;对移动硬盘开盘换磁头。&#xff0…

8.5 Spring解决循环依赖的机理(AOP)

8.5 Spring解决循环依赖的机理(AOP) MyAspect Aspect public class MyAspect {After(value "execution(* com.cjf.bean.B.*(..))")public void myAfter(){System.out.println("最终通知的功能.........");} }SpringBean.xml <aop:aspectj-autoproxy&g…

Unity游戏Mod/插件制作教程03 - 插件实例1: HelloWorld

准备工作 作为编程类的教程&#xff0c;果然第一个需要来一个传统项目——HelloWolrd。 在开始之前&#xff0c;我先贴一个链接&#xff0c;这是BepInex官方的开发手册 https://bepinex.github.io/bepinex_docs/v5.0/articles/dev_guide/index.html 有什么问题也可以翻阅官方的…

论文阅读【6】RRN:LSTM论文阅读报告(1)

lstm类似于Simple_RNN,但是又比他复杂很多.我是参考这个视频的老师讲解的,这个老师讲解的非常好.https://www.bilibili.com/video/BV1FP4y1Z7Fj?p4&vd_source0a7fa919fba05ffcb79b57040ef74756 lstm的最重要的设计就是那一条传输带,即为向量CtC_tCt​,过去的信息通过他传送…

跨程序共享数据:Android四大组件之内容提供器

跨程序共享数据&#xff1a;Android四大组件之内容提供器前言七、跨程序共享数据&#xff1a;Android四大组件之内容提供器7.1 内容提供器&#xff08;Content Provider&#xff09;简介7.2 运行时权限&#xff08;软件不能为所欲为&#xff0c;想要什么权限&#xff0c;还得主…

【project 】软件使用

project软件使用 1.如何为某任务或资源创建日历 创建新日历 工具->更改工作时间->新建->定义日历名称&#xff0c;选择“新建基准日历”->根据各承建商的日历创建相应的日历 使用新日历 拷贝各承建商的各项任务到指定的项目计划中&#xff0c;然后&#xff…

基于特征选择的二元蜻蜓算法(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

C. String Equality(思维)

Problem - 1451C - Codeforces Ashish有两个字符串a和b&#xff0c;每个字符串的长度为n&#xff0c;还有一个整数k。 他想通过对a进行一些&#xff08;可能是零&#xff09;操作&#xff0c;将字符串a转换成字符串b。 在一次操作中&#xff0c;他可以 选择一个索引i&#x…

哪吒汽车的技术发布会都发布了什么?纯干货抢先看

11月21日&#xff0c;哪吒汽车发布了浩智超算、浩智电驱、浩智增程三大技术品牌&#xff0c;并推出三款技术产品&#xff0c;包括智能汽车中央超算平台、800V SiC高性能电驱系统、高效三合一增程器。去年年底&#xff0c;哪吒曾经发布过山海平台&#xff0c;据说是一个支持哪吒…

性能环境搭建(0-CentOS7 安装配置)

1.前言 根据现有的组件&#xff0c;准备动手搭建一套完整的监控环境。既然是练手&#xff0c;还是在虚拟机里自己先练习一下。出了问题也好恢复。所有就先从最基本的开始。那就是操作系统开始搭建玩起来。 2.环境 资源有效利用吧&#xff0c;公司的资源能自由使用的那最方便…

数据结构-复杂度(一)

目录 一、什么是复杂度&#xff1f; 算法效率&#xff1a; 复杂度&#xff1a; 二、复杂度分类 一、时间复杂度 二、空间复杂度&#xff08;Space Complexity&#xff09; 了解数据结构之前需要了解复杂度。 一、什么是复杂度&#xff1f; 在介绍复杂度之前我们现分享一…

CengBox靶机

0x01 信息收集 nmap -sV 10.0.2.6 22 ssh端口&#xff0c;弱口令爆破为主 80 web页面 目录遍历&#xff0c;备份文件查找等 dirsearch -u http://10.0.2.6 获取了目录&#xff0c;发现存在一个maseradmin目录&#xff0c;可能存在些东西&#xff0c;继续扫。 dirsearch -u …