js知识点笔记(自用常更新)

目录

1.DOM操作——怎样添加、移除、移动、复制、创建和查找节点

2.解释JS中的相等性

3.解释一下变量的提升

4.定时器的分类?他们的区别及使用方法是什么

5.深拷贝与浅拷贝

 6.什么是闭包

7.原型和原型链

8.继承

9. Js数组转成换字符串,强制转换成整数及转换成浮点数的函数分别是什么?

10、toFixed()方法


 

1.DOM操作——怎样添加、移除、移动、复制、创建和查找节点

(1)创建新节点
       createDocumentFragment()    //创建一个DOM片段
       createElement()   //创建一个具体的元素
       createTextNode()   //创建一个文本节点 
(2)添加、移除、替换、插入
       appendChild()
       removeChild()
       replaceChild()
       insertBefore() 
(3)查找
       getElementsByTagName()    //通过标签名称
       getElementsByName()    //通过元素的Name属性的值
       getElementById()    //通过元素Id,唯一性 (4)复制 New Clipboard('#copy_btnTwo');

2.解释JS中的相等性

> (1)严格相等(全等,===):在判断两个操作数是否完全相等,这里在比较时不会进行隐式类型转换,会带上操作数的类型进行比较。
> (2)非严格相等(==):比较时会涉及隐式类型转换

3.解释一下变量的提升

> 变量提升是 JavaScript的一种执行机制,大致就是字面意思,将声明的变量提前,但并不是指在编译时改变语句的顺序,而是将变量提前放入内存中,供后续操作

4.定时器的分类?他们的区别及使用方法是什么

> 分为只执行一次和轮询,setInterval() 永久轮询,setTimeout()执行一次

5.深拷贝与浅拷贝

> 浅拷贝的意思就是只复制引用(指针),而未复制真正的值。 深拷贝就是对目标的完全拷贝,不像浅拷贝那样只是复制了一层引用,就连值也都复制了。

 6.什么是闭包

> 闭包就是能够读取其他函数内部变量的函数。 通俗的讲就是函数a的内部函数b,被函数a外部的一个变量引用的时候,就创建了一个闭包。 最常见的是函数封装的时候,再就是在使用定时器的时候,会经常用到...

**示例**
function test() {
    let a  =  1;
    return function() {
        return a;
    }
}
let  temp = test();
console.log(temp())  // 1

7.原型和原型链

> (1)原型 每个对象都会在其内部初始化一个属性,就是prototype(原型)。 通俗的说,原型就是一个模板,更准确的说是一个对象模板。
> (2)原型链 就是利用原型让一个引用类型继承另一个引用类型的属性和方法。

8.继承

> 主要有三种继承方法:构造函数继承、原型继承、组合继承
> (1)构造函数继承方法:子类的构造函数调用了父类的构造函数,使用call改变父类构造函数的作用域。
> 如果方法也通过这种方法继承的话,会使得多个实例的方法也私有化,造成资源的浪费。即,构造函数继承方法会使得子类的多个实例中从父类继承过来的属性和方法都私有化,没有实现方法的共享。
> (2)原型继承方法:子类的原型指向父类的实例,并将子类原型上的构造函数修正为子类的构造函数。
> 通过原型继承方法实现的继承,子类的多个实例中从父类继承过来的属性和方法都实现了共享,没有实现属性的私有化,因此针对一个实例的属性进行修改,会影响其他实例的属性。
> (3)组合继承:构造函数继承和原型继承的组合,即,把想要从父类那里继承的属性利用构造函数继承的方式实现继承,把想要从父类那里继承的方法利用原型继承的方式实现继承。 通过组合继承方法实现的继承,子类的多个实例中从父类继承过来的属性实现了私有化,而方法实现了共享。

9. Js数组转成换字符串,强制转换成整数及转换成浮点数的函数分别是什么?


js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

1. 转换函数:

在 判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串。parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试。这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。

parseInt("1234blue"); //returns 1234 
parseInt("0xA"); //returns 10 
parseInt("22.5"); //returns 22 
parseInt("blue"); //returns NaN

2. 强制类型转换

还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。


ECMAScript中可用的3种强制类型转换如下: 
Boolean(value)——把给定的值转换成Boolean型; 
Number(value)——把给定的值转换成数字(可以是整数或浮点数); 
String(value)——把给定的值转换成字符串。

3. 利用js变量弱类型转换

举个栗子:

<script> 
var str= '012.345 '; 
var x = str-0; 
x = x*1;
</script>

10、toFixed()方法

把数字转换为字符串,结果的小数点后有指定位数的数字:

var num = 5.56789;
var n=num.toFixed(2);

console.log(n); // 5.57

语法:number.toFixed (x

参数值:x  必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

返回值:String  (小数点后有固定的 x 位数字,不够的用0来占位)


 用法:toFixed() 方法可把 Number 四舍五入为指定小数位数的数字

var num = new Number(9.999);
var n=num.toFixed(2);
console.log(n)  // 10.00

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值