javascript基础语句(一)

1、javascript变量

命名方法:

(1)匈牙利命名法: 变量名=类型+对象描述 (Int 整型 i、Float 浮点 fl、Boolean 布尔 b、String 字符串 s、Array 数组 a、Object 对象 o、Function 函数 fn、Regular Expression 正则 re);

(2)驼峰命名法: 全部小写 (单词与单词间用下划线分割)、大小写混合 (大驼峰:每个单词首字母大写、小驼峰:第一个单词首字母小写,其他首字母大写)。

命名规则:

(1)首字符 (英文字母或者下划线);

(2)组成 (英文字母、数字、下划线);

(3)禁忌  (JavaScript关键词与、保留字)。

声明:

(1)显示声明 (var 变量名)

(2)陋习 (没有类型、重复声明、隐式声明、不声明直接赋值);

(3)正解 (先声明、后读写。 先赋值,后运算);

变量类型:

(1)值类型:一、占用空间固定,保存在栈中。 二、保存与复制的是值本身。三、使用typeof检测数据的类型。四、基本类型数据是值类型。

(2)引用类型:一、占用空间不固定、保存在堆中。二、保存和复制的是指向对象的一个指针。三、使用instanceof检测数据的类型。四、使用new()方法构造出的对象是引用型。

作用域:

(1)全局变量:

一、包含:在函数体外定义的变量、在函数体内部定义的无var的变量。

二、调用:任何位置。

(2)局部变量:

一、包含:在函数内部使用var声明的变量、函数的参数变量。

二、调用:当前函数体内部。

(3)优先级:

局部变量高于同名全局变量。

参数变量高于同名全局变量。

局部变量高于同名参数变量。

那么可以总结为 局部变量的优先级最高、然后是参数变量、最后是全局变量。

(4)特性:

一、忽略块级作用域。

二、全局变量是全局对象的属性。

三、局部变量是调用对象的属性。

(4.1)作用域链:

一、内层函数可访问外层函数局部变量。

二、外层函数不能访问内层函数局部变量。

(4.2)生命周期:

一、全局变量:除非被显示删除,否则一直存在。

二、局部变量:自声明起至函数运行完毕或被显示删除。

三、回收机制:标记清除、引用计数。

2、javascript运算符

算数运算符:

(1)运算符:

“+”

一、功能:

(1.1)对数字进行代数求和。

(1.2)对字符串进行连接操作。

(1.3)将一个数值转换成字符串   (数值+空字符串)。

二、字符串拼接:

(2.1)字符串+字符串  (二者直接拼接)。

(2.2)字符串+数值  (数值转为字符串在拼接)。

“-”

功能:

对操作数进行“取反”操作。

对数字进行减法操作。

将字符串转换成数值    数值型字符串-0

“*”

功能:对两个运算数进行乘法运算。

符号问题:同号得正,异号的负。

“/”

功能:对两个运算数进行除法运算。

符号问题:同号得正,异号的负。

“%”

功能:返回两个除数的余数。

符号问题:和第一个运算数的符号相同。

复合赋值运算符  +=、-=、*=、/=、%= 。

自增与自减:

(1)功能相反:

++ 对唯一的运算数进行递增操作(每次加1)。

-- 对唯一的运算数进行递减操作 (每次减1)。

(2)规则相同:

运算数必须是一个变量、数组的一个元素或者对象的属性。

如果运算数是非数值的则运算符会将它转成数值。

(3)符号位置决定运算结果:

运算数之前 先进行递增(递减)操作,再进行求值 (例如:++a)。

运算数之后 先求值,再进行递增(递减)操作。 (例如:b++)。

关系运算符:

(1)大小关系检测:

(1.1)运算符:

“<” 如果A小于B,则返回值为true,否则返回值为false

“<=”如果A小于等于B,则返回值为true,否则返回值为false

“>=”如果A大于等于B,则返回值为true,否则返回值为false

“>”如果A大于B,则返回值为true,否则返回值为false

(1.2)操作规则:

数值与数值的比较 比较它们的代数值

仅一个运算数为数值 将另一个运算数转换成数值,在比较他们的代数值

字符串之间的比较, 逐字符比较他们的unicode数值

字符串与非数值的比较 将运算符转换成字符串在进行比较

运算数即非数值也非字符串 转换成数值或者字符串进行比较

运算数无法转换成数值或者字符串 返回值为false

与NaN的比较 返回值为false

(2)等值关系检测:

(2.1)相等比较:

(2.1.1)操作符:

== 比较两个运算数的返回值看是否相等

!= 比较两个运算数的返回值看是否不相等

(2.1.2)类型转换:

布尔值: true 1  false 0

对象: 调用valueof() 基本类型。  例如:a.

字符串与数值比较:字符串转换为数值。    

(2.1.3)比较原则:

null 与undefined  相等、 比较前不进行任何转换。

NaN  与任何数值都不相等包括其自身。

对象 是否属于同一对象   是 ==   否 !=。

(2.2)相同比较

运算符:

===  比较两个运算数的返回值及数据类型看是否相同

!== 比较两个运算数的返回值及数据类型是否不同

比较原则:

值类型比较:只有数据类型相同,且数值相等时才能够相同

值类型和引用类别比较 肯定不相同

引用类型间比较 比较它们的引用值 (内存地址)

对象运算符:

in 判断左侧运算数是否为右侧运算数的成员。

instancesof 判断对象实例是否属于某个类或构造函数。

new  根据构造函数创建一个新的对象,并初始化该对象。

delete 删除指定对象的属性, 数组元素或变量。

.及[]存取对象和数组元素。

()函数调用,改变运算符优先级等。

逻辑运算符:

(1) !逻辑非 

返回值  true   空字符串、 0、undefined、null、NaN;

        false  对象、非空字符串、非0数值(Infinity);

特性    如果运算数的值为false则返回true,否侧返回false;

        连续使用两次!,可将任意类型转为布尔型值;

(2)&&逻辑与

规则:

第一个操作数是对象,  返回第二个操作数。

第二个操作数是对象,  第一个操作数值为true时返回该对象。

两个操作数都是对象, 返回第二个操作数。

一个操作数是null   返回null 。

一个操作数是NaN    返回 NaN 。

一个操作数是undefined  返回 undefined 。

特性:

当且仅当两个运算数的值都是true时,才返回true,否则返回false;

短路操作  当第一个操作数的值是false则不再对第二个操作数进行求值;

(3)||逻辑或

规则:

第一个操作数是对象   返回第一个操作数

第一个操作数值为false  返回第二个操作数

两个操作数都是对象    返回第一个操作数

两个操作数都是null   返回 null

两个操作数都是NaN    返回 NaN

两个操作数都是undefined   返回 undefined

特性:

当且仅当两个运算数的值都是false时, 才返回false,否则返回true;

如果第一个操作数值为true,则不会对第二个操作数进行求值;

 位运算符:

(1)基础知识:

(1.1)类型:

有符号:数值位  前31位

             符号位  第32位   0   正数、 1  负数 ;

无符号:只能是正数、第32位表示数值、数值范围可以加大 ;

javascript 数组:

(1)创建方法:

空数组: var Obj =new Array();

指定长度数组: var obj =new Array(size);

指定元素数组: var obj =new Array(元素1、元素2、...、元素N);

单维数组:    var  obj =[元素1、元素2、元素3、....、元素N];

多维数组:    var   a =new  Array ([数组序列1]、[数组序列2]、[数组序列N]);

 (2)基本操作:

(2.1)存取数组元素

单维数组 : 数组名[下标索引]

多维数组:数组名[外层数组下标][内层元素下标]

特性:

数组长度是弹性的,可自由伸缩、

数组下标从0开始、

下标类型 : 数值、 非数值:转为字符串、生成关联数组、下标将作为对象属性的名字

数组元素可添加到对象中

(2.2)增加数组  使用“[]”运算符指定一个新下标

(2.3)删除数组  delete数组名[下标];

(2.4)遍历数组  for(var 数组元素变量  in  数组)

(3)数组属性:

constructor     引用数组对象的构造函数

length             返回数组的长度

prototype        通过增加属性和方法扩展数组定义

(4)ECMAscript 3方法:

(4.1)添加:

push () 在数组末尾添加数组

unshift ()  在数组头部添加元素

concat()  合并两个数组

(4.2)删除:

pop()  删除并返回数值的最后一个元素

shift() 删除并返回数组的第一个元素

(4.3)子数组:

splice() :

删除任意数量的项 : 要删除的起始下标、要删除的项数

在指定位置插入指定的项: 起始下标、 0(不删除任何项)、要插入的项;

替换任意数量的项: 起始下标、要删除的项数、要插入的项;

slice():

功能:从已有数组中选取部分元素构成新数组

参数: 返回顶的起始位置       

            返回顶的结束位置

(特性:如果是负数,则用数组长度加上该值确定位置、启示位置实为数组的实际下标、结束位置的实际下标为结束数值减1);

(4.4)数组排序:

reverse() 颠倒数组中元素的顺序;

sort ():

功能:对字符数组或数字数组进行排序

特性:默认为按字符串比较、 按数值大小比较需要函数支持。

(4.5)数组转换:

toString() 转换为字符串并返回

toLocaleString() 转换为本地格式字符串并返回

join() 用指定分隔符分割数组并转换为字符串

(5)ECMAScript 5方法:

(5.1)位置方法:

indexOf  从数组的起始位置开始查找;

lastIndexOf   从数组的结束位置开始查找 ;

(参数:1.要查找的项、2.表示查找起点的位置索引);

(5.2)迭代方法:

every  如果该函数对每一项都返回true,则返回true;

filter   返回值为true的所有数组成员;

foreach   无返回值

map       返回每次函数调用的结果数组

some     有任意一项返回true,则返回true    

(参数:接收参数  要在每一项上运行的函数、运行该函数的作用域对象;传入参数   数组项的值 item、该项在数组中的位置  index、数组对象本身array);

(5.3)缩小方法:

reduce  从数组起始位开始遍历

reduceRight   从数组末尾开始遍历 

(参数:接收参数  每一项上调用的函数、作为缩小基础的初始值; 传入参数:前一个值prev、当前值  cur、项的索引  index、数组对象 arry)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值