JavaScript速效救心丸

2022/1/4 22:04:11

本文主要是介绍JavaScript速效救心丸,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

适合长时间没碰js,有一定基础的人快速回忆重要常用知识点

  • 在JS中一共由六种数据类型 String、Number、Boolean、Undefined、Null、Object
  • 用typeof检查一个null时候会返回一个Object
  • NaN是Number类型的一个特殊的值
  • 使用toString方法转化数据类型为字符串,不会影响原变量,会将转换结果进行返回,null和undefined没有此方法
  • 使用Number()函数把字符串转化为数字,如果是纯数字就直接转化,如果是含有字母转化为NaN,如果是空字符串转化为0
  • 使用Number()函数,NUll转化为0,undefined转化为NaN
  • 使用parseInt()、parseFloat()是专门对付字符串的,解析到第一个字母截止
  • 对非字符串使用parseInt()、parseFloat(),会强制转换为字符串然后进行Number()
  • js中表示16进制的要用0x开头,表示8进制使用0开头、表示2进制使用0b开头
  • 使用Boolean()函数,在Number类型中只有0与NaN是false
  • 使用Boolean()函数,undefined是false,null是false
  • 使用Boolean()函数,在String类型中只有空串是false
  • 使用Boolean()函数,object是true
  • 算数运算符,对非Number类型使用时候,会转换为Number在进行操作
  • 任何值与NaN运算,其结果都是NaN
  • 任何值与字符串拼接,其结果都是字符串,注意是+法!
  • 一元运算符对于非Number的会转化为Number,规则同上
  • 使用+可以隐式转化为Number
  • 非布尔值的逻辑运算,会转化为布尔值运算后,返回原来的值
  • &&运算(两边不是布尔值的时候),如果都是真,返回右边的
  • &&运算(两边不是布尔值的时候),如果含有假,返回靠前的假
  • ||运算,(两边不是布尔值的时候),如果含有真,返回靠前的真
  • ||运算,(两边不是布尔值的时候),如果都是假,返回靠后的假
  • 关系运算符中针对非数值类的数据的时候,遇到NaN结果都是false
  • 关系运算符中如果两端都是字符串的时候,不会转化为数值,而是分别比较字符串中的Unicode编码
  • js中使用Unicode编码,加上转义字符\u
  • html中使用Unicode编码,加上&#编码;(这里的编码需要十进制)
  • 做相等运算==,undefined等于null,null不等于0,NaN不和任何值包括本身
  • 可以通过isNaN()函数判断一个值是否为NaN
  • =,!,均不会自动类型转化
  • 对象分为3种,内建、宿主、自建
  • 使用in可以判断对象时候含有某个属性
  • js中函数也是一个对象,注意函数创建的三种方式
  • 调用函数时候,解析器不会检查实参的类型,也不会检查实参的数量,当实参个数小于形参的时候,多余的形参被赋值为undefined
  • 函数中return后面什么都不写的话,会返回undefined,不写return语句的时候,也是直接返回undefined
  • 作用域分为全局作用域和函数作用域
  • 变量是可以有变量提升,但是只是提升的是声明,赋值不会提升
  • 使用函数声明创建的函数function 函数(){},会在所有的代码执行之前就会被创建,所以我们可以在函数声明前来调用函数,
  • 使用函数表达式创建的函数,也仅仅是提升的变量,没有进行赋值操作,所以这个时候变量还不是一个函数,所以不能使用
  • 在函数中,如果没有使用var声明变量,则这个变量会被挂载到全局中
  • 在函数中,定义形参,就相当于在函数内部定义var 形参
  • 解析器在调用函数的时候,会向函数内部传递一个隐含的参数,这个参数就是this,this指向一个对象,这个对象就是函数执行的上下文
  • 通过函数的形式调用,this就是window,通过方法调用的时候,this就是调用方法的那个对象
 //工厂方法
 function createPerson(name){
     var obj = new Object();
     obj.name = name
     return obj;
 }
 //构造函数
 function Person(name) {
    this.name = name;     //this是这个对象哦,不是window了
 }
  • 使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类,我们将通过一个构造函数创建的对象,称为是该类的实例
  • 每个函数都有一个属性prototype,这个属性指向一个对象,即原型对象
  • 当函数作为构造函数使用的时候,创建的对象实例中都有一个隐含的__proto__指向这个原型对象
  • 可以使用对象的hasOwnProperty()来检查对象自身中是够含有该属性
  • 原型对象也有原型,一直找到object对象为止
  • 修改原型的方法
function Person(name){
    this.name = name;
}
Person.prototype.toString = function(){
    return "Person[name" + this.name + "]"
}
//不是加在实例上的哦,是加在构造函数的原型上
  • 修改数组的length,如果修改的是length大于原长度,则多出部分会空出来,如果修改的length小于原长度,则多出来的元素会被删除
  • 数组中的元素类型可以是任意的
  • 数组的四个方法:unshift往头加、shift往头删、push往尾巴加、pop往尾巴删
  • 使用forEach遍历数组时候,浏览器会在回调函数中传递三个参数,第一个参数就是当前正在遍历的元素,第二个参数就是正在遍历元素的索引,第三个参数事正在遍历的数组
  • slice包括开始,不包括结束,从后往前结束的话,最后一个为-1
  • splice的参数是包括开始,删除的数量,第三个参数及其以后是添加的
  • concat连接数组,join把数组转换为字符串
  • sort对数组进行排序,回调函数返回大于0,则元素会交换位置,回调函数返回小于等于0,则元素不会交换位置
  • 使用函数调用call和apply函数的时候,可以传递一个对象,此时函数中的this,就是指向这个对象
  • call()方法可以将实参在对象之后依次传递,apply()方法需要将实参分装到一个数组中统一的传递
  • arguments是一个类数组对象,调用函数的时候,我们传递的实参都会在arguments中保存,arguments还有一个属性叫做callee,这个属性就是当前的函数对象,注意函数就是一个特殊的对象
  • 当我们对一些基本数据类型的值去调用属性和方法的时候,浏览器会临时使用包装类转换为对象,然后在调用完之后,又转换为基本数据类型
  • chartAt指定获取字符串的字符,concat连接字符串,indexof检查字符串中是否出现指定字符(从前往后找,找到第一个就停止)
  • split可以将一个字符串拆分成一个数组,但是需要传递一个字符作为拆分标准
  • new RegExp(正则表达式,匹配模式),使用test来检测
  • 字面量方式正则表达式,var 变量 = /正则表达式/模式匹配
  • 正则:使用|、[]表示或、 [a - z]表示任意小写字母,[A - Z]表示任意大写字母
  • 正则:[0 - 9]表示任意数字,[^ ]表示除了
  • 正则:通过{}量词,可以衡量出现的次数,且只会对前一个字母起作用
  • 正则:+ == {1,}, * == {0,}, ? == {0,1}
  • 正则:^a表示a开头,a$表示a结尾
  • 正则:一个.表示任意字符,\是转义字符,但是在使用构造函数时候,由于它的参数是一个字符串,而\是字符串中转义字符,如果使用\,则使用\代替
  • 正则:\w表示任意字母和数字,\d任意数字、\s空格、\b单词边界
  • 字符串和正则相结合,split,search,match、replace
  • BOM与DOM《==是连接哟


这篇关于JavaScript速效救心丸的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程