本文主要是介绍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速效救心丸的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!