优秀的编程知识分享平台

网站首页 > 技术文章 正文

JavaScript基本总结(javascript详细介绍)

nanyue 2024-07-22 14:15:38 技术文章 9 ℃


JS复习

运算符

一元运算符

只操作一个值或者对象

delete

· 删除对以前定义的对象属性或方法的引用

· 删除数组中的元素,不改变数组的长度

· var声明的对象不能删除

· function定义的函数和函数参数不能删除

· 删除的是一个左值,删除非左值会返回true

· 删除不存在的属性,返回true

void

· 对任何值返回 undefined

· 该运算符通常用于避免输出不应该输出的值,例如HTML中的a标签

· 没有返回值的函数真正返回的都是 undefined。

自增/自减

位运算符


按位与 &:两个操作数对应位置上 都是相同才返回1

按位或 | :

· 两个操作数相应位置上有一个是1就返回1

按位异或 ^:

· 两个操作数对应位置上有一个是1(不能同时为1)就返回1,两个都是1返回0

按位非 ~:

· 改变操作数的符号(+/-)并且减一

左移 << :

· a<<b;将a的所有二进制位左移b(0-31)位,新来的二进制用0补全,舍弃第32位

· 将一个数左移1位相当于乘以2,左移2位相当于乘以4,以此类推(2的n次方)

右移 >> :

· a>>b;将a的所有二进制位右移b(0-31)位

? 左边由操作数的符号决定

? 正数:用0补最高位

? 负数:用1补最高位

? 右边溢出的忽略

· 将一个数右移1位相当于除以2(忽略余数),右移2位相当于除以4,以此类推(2的n次方)

无符号右移 >>>:

· 与>>一样,只是左边做高位一直补0,与符号无关

布尔运算符

与(AND)&&

· 都为true才返回true

· 第一个为真返回第二个,第一个为假,返回第一个

· 第一个是对象,第二个是布尔值,返回对象

· 有一个值是undefined返回错误

或(OR)| |

· 有一个为true的就返回true

· 第一个为真,返回第一个,第一个为假返回第二个

· 有一个值是undefined返回错误

非(NOT)!

· 返回的一定是布尔值

各类型转换布尔的值

· Undefined false

· Null false

· Boolean 结果等于输入的参数(不转换)

· Number 如果参数为 +0, -0 或 NaN,则结果为 false;否则为 true。

· String 如果参数为空字符串,则结果为 false;否则为 true。

· Object true

简单运算符

算数运算符

· +,-,*,/

关系运算符

· > , < , >= , <= , == , === , != , !==

三元运算符

· 条件运算符

· a?b:c

? a如果为true执行b,否则执行c

赋值运算

· =

? 右值赋给左值

· *= , /= , += , -= , %= , <<= , >>= , >>>=

逗号运算符

用逗号运算符可以在一条语句中执行多个运算。

逗号运算符常用变量声明中

语句

选择语句

if

· if(强制转换为boolean类型)

switch...case

循环语句(迭代语句)

do...while

while

for

for...in

· 遍历对象

· for(var key in obj){}

break

跳出循环

continue

结束本次循环 ,进行下一次循环

函数

函数是一组可以随时随地运行的语句。

函数是 ECMAScript 的核心。

函数声明

直接量

· function fun(){}

· 不能出现在循环/判断/try/cache/finally/while语句中

表达式

· var fun = function(){}

? 不会被声明提前

对象创建

· var fun = new Function("")

? 不会被声明提前

调用

函数可以通过其名字加上括号中的参数进行调用

无参数可以不写括号(最好不要这样做)

不声明函数返回值,返回undefined

四种调用方法

· 作为函数

? fun();

? this指向window

· 作为方法

? o.fun()

? this指向调用方法的对象o

? 方法就是保存在一个对象属性的函数

? 意味着该函数被当作一个方法,而不是普通的函数

? 属性访问

? obj.m()

? obj['m']()

? f().m()

? 在f函数调用结束后,继续调用返回值中的m()函数

? 意思一样

? 方法链

? 当方法的返回值是一个对象,可以继续调用其他方法

? 有了方法链就可以进行链式编程

? this关键字

· 作为构造函数

? this指向new创建的对象

? var o = new fun()

· 上下文调用模式

? call(this指向的对象,[1],[2],,,[n])

? apply(this指向的对象,[arr])

实参和形参

实参如果比形参 少,多余的形参赋值为undefined

如果形参比实参少,多余的实参舍弃

检测形参

· function fun(a,b){b = b | | []};如果没有传b的值 就不b赋值为一个新数组

· 这种方法需要将可选实参放置在最后

arguments

· 函数的一个属性

· 把函数传入的实参保存在arguments这个伪数组内

· 有length属性

对象作为函数的实参

Tags:

最近发表
标签列表