JavaScript速效救心丸
Posted 鲨鱼小猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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速效救心丸的主要内容,如果未能解决你的问题,请参考以下文章
Android岗面试速效救心丸!9月26日刷题复习指南!干货!速看!
Android岗面试速效救心丸!9月26日刷题复习指南!干货!速看!