JavaScript基础学习
数据类型
5种简单:Undefined、Null、布尔Boolean、数值Number、字符串String
一种复杂:Object(引用)各个值组成的集合,每个键值对之间使用,分隔键与值之间使用:分隔 key value
类型转换
类型判断:typeof
隐式类型转换 | 自动 一般为四则运算 + - * /显示类型转换 | 强制 任意类型都可以转换为以下三种类型 : String Number Boolean
'123abc' 非纯数字字符串 NaN String转Number
Null -> 0
Undefined -> NaN
'' false
' ' true String转Boolean
其他字符串 true
0,NaN ->false
非0数字 ->true Number转Boolean
Null ->false
Undefined ->false
运算符
= 赋值
== 是否相等 数据
=== 是否相等 数据+类型 先比较类型后比较数据值
&& 两个都是真才是真,一个假就是假
如果两端出现非boolean类型的操作数:
先把第一个操作数转为boolean.如果为false,最终的结果为第一个操作数,如果为true,结果为第二个操作数
|| 一个为真就是真,两个都为假才是假
如果两端出现非boolean类型的操作数:
先把第一个操作数转为boolean.如果为true,最终的结果为第一个操作数.如果为false,结果为第二个操作数 有短路特点
数组
数组 : 存储多个数据
可变长,长度根据跟随数据的增删动态的改动索引,可以根据索引操作数组中的数据,数组的索引可以跟随数据的改动进行动态修改,如果数组存在,索引位置存在,但是没有赋值,默认undefined。js中的数组中可以存放任意类型的数据
//自定义属性
arr3["abc"] = "abc属性值";
console.log(arr3);
console.log(arr3["abc"]);
.for in --> i作为索引
for(var i in arr3){
console.log(arr3[i]);
}
foreach
arr3.forEach(function (ele,index) {
console.log(ele+"--->"+index);
});
函数
有三种函数定义的方式:函数声明语句、函数定义表达式、Function构造函数
foo();
function foo(){
console.log(1);
} // 变量声明提升
console.log( a );
var a = 2;
注意:
js中的函数没有重载,同名的函数,会被后面的函数覆盖。
js中允许有不定数目的参数,后面介绍arguments对象
函数运行的时候,有时需要提供外部数据,不同的外部数据会得到不同的结果,这种外部数据就叫参 数,定义时的参数称为形参,调用时的参数称为实参
实参可以省略,那么对应形参为undefined 若函数形参同名(一般不会这么干):在使用时以最后一个值为准。 可以给参数默认值:当参数为特殊值时,可以赋予默认值。 参数为值传递,传递副本 ;引用传递时传递地址,操作的是同一个对象。
对象
内置对象
Arguments 只在函数内部定义,保存了函数的实参
Array 数组对象
Date 日期对象,用来创建和获取日期
Math 数学对象
String 字符串对象,提供对字符串的一系列操作
◦ charAt(idx) 返回指定位置处的字符
◦ indexOf(Chr) 返回指定子字符串的位置,从左到右。找不到返回-1
◦ substr(m,n) 返回给定字符串中从m位置开始,取n个字符,如果参数n省略,则意味着取到字符串末尾。
◦ substring(m,n) 返回给定字符串中从m位置开始,到n位置结束,如果参数n省略,则意味着取到字符串末尾。
◦ toLowerCase() 将字符串中的字符全部转化成小写。
◦ toUpperCase() 将字符串中的字符全部转化成大写。
◦ length 属性,不是方法,返回字符串的长度。
对象 Object
{}
键值对的集合
键 : 值
键值对之间通过 ,进行分隔
所有的键默认都是字符串 ""
如果key符合标识符的命名规范.可以省略""
value可以为js中任意类型
操作对象的属性:
根据key获取value
1)对象名.属性名
2)对象名[属性名]
js中对象的创建方式:
1.字面量的创建方式 {}
2.new Object() 空对象