JavaScript基础知识思维导图
2021-12-20 09:02:44 0 举报
AI智能生成
javascript基础知识
作者其他创作
大纲/内容
变量
变量类型
值类型
1.占用空间固定 2.保存和复制的是值本身
3.typeof检测数据的类型 4.基本类型数值是值类型
引用类型
1.占用空间不固定,保存在堆中
2.保存和复制的是指向对象的一个指针
3.使用instanceof检测数据的类型
4.使用new()方法构造出的对象时引用型
作用域
全局变量
包含
在函数体外定义的变量
在函数体内部定义的无var声明的变量
调用
任何位置
局部变量
包含
函数的参数变量
调用
当前函数体内部
在函数内部使用var声明的变量
优先级
局部变量高于同名全局变量
参数变量高于全局同名变量
局部变量高于同名参数变量
特性
忽略块级作用域
全局变量时全局对象的属性
局部变量是调用对象的属性
作用域链
内层函数可访问外层函数局部变量
外层函数不能访问内层函数局部变量
生命周期
全局变量
除非被删除,否则一直处在
局部变量
自声明起至函数运行完毕或显示被删除
回收机制
标记清除
引用计数
数据类型
undefined
null
逻辑上null表示一个空对象的指针
使用typeof检测时返回object
使用typeof检测时返回object
boolean
string
转义序列
\n 换行 \t 制表 \b 空格
类型转换
toString
使用类型
number
boolean
string
object
String
null
undefined
eval
计算字符串表达式的值并以数值返回
number
数值范围
最大值
Number.MAX_VALUE
最小值
Number.MIN_VALUE
超出范围
Number.POSITIVE_INFINITY //Infanity
Number.NEGATIVE_INFINITY //-infinity
无法参加下一次运算---》 isFinite 检测
超出
false
合法
true
NaN
检测 isNaN
true
不可以转换为数值
false
可以转换为数值
数值转换
number()
null
0
undefined
NaN
String
纯数字
前导0忽略
浮点格式
前导0忽略
十六进制
相同大小的十进制数值
空字符串
0
其他
NaN
Boolean
true
1
false
0
object
valueOf()
toString
parseInt
parseFloat
object
var obj=new Object()
属性与方法
Constructor
保存用于创建当前对象的函数
hasOwnProperty(name)
检测当前属性在当前对象中是否存在
isPrototypeOf
检测传入的函数是否是另一个对象的原型
toLocaleString
返回对象的字符串表示,该字符串与执行环境地区对应
toString
返回字符串表示
valueOf
与toString类似
运算符
算数运算符
+ - * / %
复合赋值运算符
+= -= *= /= %=
关系运算符
大小关系
运算符
< <= >= >
规则
数值
直接比较
一个数值
将另一个转换成数值,并比较代数值
字符串
逐个字符比较Unicode数值
字符型+非数值
将运算数转换成字符串表示
非数字也非字符串
转换成数字或字符串比较
无法转换成数字或字符串比较
false
与NaN 比较
返回false
等值关系
== != === !===
逻辑运算符
! && ||
自增自减
运算数之前
先加减
运算符之后
先求值
对象运算符
in
判断左侧是否是 右侧运算数的成员
instancesof
判断对象实例是否属于某个类或构造函数
new
创建
delete
删除
位运算符
<< >>
其他
?:
就是类似于简单是if else
tyoeof
类型判断
void
舍弃运算数的值,返回undefined作为表达式的值
流程
循环语句
while
do-while
for-in
for
跳转语句
return
终止函数运行,并返回
break
终止整个循环,不在进行判断
continue
结束本次循环,接着判断是否执行下次循环
选择语句
if
switch
default
break
异常处理语句
try
指需要指明的代码断
catch
捕获异常
finally
后期处理
throw
主动抛出异常
数组
创建
var obj=new Array()
var obj=[1,2,3]
var obj=([1,2],[1,2])
属性
constructor
引用数组对象的构造函数
prototype
有能力向对象添加属性和方法。
length
长度
添加
push()
向数组末尾添加数组
unshift()
在数组头部添加元素
concat()
合并两个数组
删除
pop()
删除并返回数组的最后一个元素
shift()
删除并返回数组第一个元素
子数组
splice()
参数1:下标 参数2:删除项数 参数3:要插入的项
slice()
参数 1:起始位置 2:结束位置
功能 从已有的数组 切割 部分元素组成新数组
排序
reverse()
颠倒顺序
sort()
对字符数组(默认)或数字数组进行排序
转换
toString()
toLocaleString()
join()
用指定分割符分割数组并转换成字符串
位置
参数 1:要查找的项 2:位置
indexOf
从起始位置查找
lastIndexOf
从结尾位置查找
迭代方法
参数 以下方法都不会改变原数组,且每一个方法的传入函数都对应有三个参数:数组项的值,该项在数组中的位置,数组对象本身。
var result=a.map(function(item,index,array){ });
var result=a.map(function(item,index,array){ });
every
每一项返回true,则返回true
some
有任意一项返回true,则返回true
filter
返回true的数组成员
map
返回每次函数调用的结果数组
filter()返回符合条件的原数组项, filter方法是对数据中的元素进行过滤,也就是说是不能修改原数组中的数据,只能读取原数组中的数据
map()是原始数组的每一项都基于传入函数,进行了再次处理(加减)后的结果(即返回后的数组,在原先的基础上加了符合条件的)。
map()是原始数组的每一项都基于传入函数,进行了再次处理(加减)后的结果(即返回后的数组,在原先的基础上加了符合条件的)。
forEach
foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。
foreach不能对数组或集合进行修改(添加删除操作),如果想要修改就要用for循环。
foreach不能对数组或集合进行修改(添加删除操作),如果想要修改就要用for循环。
缩小方法(归并方法)
参数
arr.reduce(function(prev, cur, index, arr){}, initialValue)
前一个值 prev,当前值 cur,项的索引 index,数组对象 array ,初始值intialvalue
前一个值 prev,当前值 cur,项的索引 index,数组对象 array ,初始值intialvalue
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x + y;
}); // 25
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x + y;
}); // 25
reduce
从数组起始处开始遍历 累加器
reduceRight
从数组末尾开始遍历
函数基础
方法
apply
将函数作为对象的方法调用,将参数以数组形式传递给该方法
call
将参数作为对象的方法调用,将指定参数传递给该方法
toString
arguments对象
存放实参的参数列表
属性
length
获取函数实参的长度
callee
返回正在指向的函数,这个属性只有在函数执行时才有效
caller
返回当前正在执行函数的函数名
函数fun的caller返回调用fun的函数对象,即fun的执行环境,如果fun的执行环境为window则返回null
function fun(){
console.log(fun.caller)//这里必须写在fun里面,因为caller只有函数执行过程中才有效
}
fun();
//结果为:null
function fun(){
console.log(fun.caller)//这里必须写在fun里面,因为caller只有函数执行过程中才有效
}
fun();
//结果为:null
参数
形参,是在定义函数时使用的参数,目的是用来接收调用该函数时传进来的实际参数。
实参:是在调用时传递给函数的参数
实参:是在调用时传递给函数的参数
function myfun(a,b,c){ }
myfun(1,2,3);
这里a,b,c就是形参。1,2,3为实参。形参和实参是不同的变量,他们在内存中处于不同的位置,形参在函数运行结束时将被释放。
myfun(1,2,3);
这里a,b,c就是形参。1,2,3为实参。形参和实参是不同的变量,他们在内存中处于不同的位置,形参在函数运行结束时将被释放。
指针表标识
this
指向当前操作对象
callee
指向参数集合所属函数
prototype
指向函数原型对象
constructor
指向创建该对象的构造函数
概念
原型对象中有一个属性constructor,这个属性指向的是这个构造函数(声明了的函数)。
构造函数。这个构造函数(声明了的函数)中会有一个属性prototype,这个属性指向的就是这个构造函数(声明了的函数)对应的原型对象
js字符串函数
查找
字符方法
charAt()
charCodeAt()
fromCharCode()
位置方法
indexOf()
lastIndexOf()
匹配方法
match()
search()
replace()
split()
操作
截取方法
根据下标截取
slice()
substring()
根据长度截取
substr()
空格处理
trim()
trimLeft()
trimRight()
比较方法
localeCompare()
合并方法
concat()
编码
字符串常规编码与解码
escape()
unescape()
URI字符编码与解码
encodeURI()
decodeURI()
URI组件编码与解码
encodeURIComponent()
decodeURIComponent()
URI
URI(Uniform Resource Identifier,统一资源标识符)就是在IMS网络中IMS用户的“名字”,也就是IMS用户的身份标识。
SIP URI采用sip:+“用户名称@域名/IP地址端口”的格式表示一个IMS用户。其中,用户名称可以是用户名或电话号码,例如:
sip:smith@zte.com.cn
sip:smith@zte.com.cn
转换
大小写转换
大写
toUpperCase()
toLocaleUpperCase(
小写
toLowerCase()
toLocaleCase()
正则表达式
创建
方式
字面量
var demo=/ 表达式/ 模式修饰符
构造函数
var demo =new RegExp(“表达式”,“模式修饰符”)
说明
表达式
单个字符与数字
.
[a-z0-9]
[^a-z0-9]
\d
\D
\w
\W
空白字符
\0
\b
\f
\n
\r
\s
\S
\t
定位符
^
$
\A
\b
\B
\G
\Z
\z
限定符
x?
子主题
x*
x+
x{m,n}
分组
(?:x)
x(?=y)
x(?!y)
引用
\1...\9
或模式
x|y|z
模式修饰符
g
全局模式
i
区分大小写
m
多行匹配
属性
实例属性
global
ignoreCase
multiline
lastIndex
source
lastIn
构造函数属性
方法
实例方法
字符串方法
window对象
navigator
导航器
导航器
appCodeName
浏览器代码名
appName
appVersion
cookieEnable
platform
userAgent
screen
显示器
显示器
availHeight
availWiidth
height
width
colorDepth
history
历史对象
历史对象
back()
forward()
go()
location
位置
位置
属性
hash
host
hostname
pathname
port
protocol
search
方法
assign
reload
replace
document
文档
文档
集合
anchors[]
images[]
links[]
froms[]
属性
cookie
domain
referrer
title
URL
方法
open()
write()
writeln()
窗口控制
moveBy
moveTo
resizeBy
resizeTo
scrollBy
scrillTo
焦点控制
foucus
blur
打开/关闭窗口
open
close
定时器
setTimeout
cleanTimeout
setInterval
cleanInterval
对话框
alert
confirm
prompt
属性
状态栏
defaultStatus
status
窗口位置
IE
screenLeft
screenTop
!IE
screenX
screenY
pageXOffset
pageYOffset
共同
innerHeight
innerWidth
outHeight
outWidth
其他
opener
closed
bom对象
dom对象
获取节点
document
getElementById
getElementsByName
getElementByTagName
节点指针
fier
节点操作
创建节点
插入节点
替换节点
复制节点
删除节点
属性操作
获取属性
设置属性
删除属性
文本操作
子主题
0 条评论
下一页