一. 类型定义及检测
var str = 'abc';
var num = 123;
var bool = true;
var und = undefined;
var n = null;
var arr=['x','y','z'];
var obj = {};
var fun = function() {};
console.log(typeof str); //string
console.log(typeof num); //number
console.log(typeof bool); //boolean
console.log(typeof und); //undefined
console.log(typeof n); //object
console.log(typeof arr); //object
console.log(typeof obj); //object
console.log(typeof fun); //function
二. 字符串
JavaScript字符串用于存储和处理文本
字符串可以存储一系列字符,如"hello world"
字符串可以时插入到引号中的任何字符,你可以使用单引号或者双引号
定义方法:
var str = "abc";
var str2 = 'efg';
字符串的常用属性和方法
charAt() 方法可返回指定位置的字符。
concat() 方法用于连接两个或多个字符串。
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置
includes() 方法用于判断字符串是否包含指定的子字符串
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
split() 方法用于把一个字符串分割成字符串数组
substr() 方法可在字符串中抽取从开始下标开始的指定数目的字符
substring() 方法用于提取字符串中介于两个指定下标之间的字符
slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分 toLowerCase() 方法用于把字符串转换为小写
toUpperCase() 方法用于把字符串转换为大写 trim() 方法用于删除字符串的头尾空格
三. 数值 Number
Number() 方法
parseInt() 方法
parseFloat() 方法
这三种js方法时全局Javascript的方法,可以用于将变量转换成数字
四.数组
属性: 数组长度:length
方法:
toString() 把数组转换为数组值(逗号分隔)的字符串。
join() 方法也可将所有数组元素结合为一个字符串
unshift() 方法(在开头)向数组添加新元素
push() 方法(在数组结尾处)向数组添加一个新的元素
pop() 方法从数组中删除最后一个元素
shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低的索引
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那 些被删除的元素。如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组
slice()返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素
concat() 方法用于连接两个或多个数组
sort ()排序
reverse() 方法用于颠倒数组中元素的顺序 for循环遍历
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
every()对数组的每一项都运行给定的函数,每一项都返回 ture,则返回 true
some()方法用于检测数组中的元素是否满足指定条件,如果有一个元素满足条件,则表达式返回true , 剩 余的元素不会再执行检测, 如果没有满足条件的元素,则返回false。
filter()对数组的每一项都运行给定的函数,返回 结果为 ture 的项组成的数组
map()方法通过对每个数组元素执行函数来创建新数组
reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
五.对象
在真实生活中,一切皆对象,比如人、动物、植物等,例如汽车,它是汽车对象。 汽车有诸如车重和颜色等属性,也有诸如启动和停止的方法
定义方式
1.使用Object 构造函数
var person = new Object();
person.name = 'alice';
person['age'] = 20;
person.action = function(){};
2. 字面量表示法
2.1简单字面量
var person2 = {};
person2.name='jack';
person2.action = function(){console.log(this.name)};
person2.action();
2.2 嵌套字面量
var person3 = {
name:'angela',
age:18,
action:function(){
console.log(this.age)
}
};
person3.action();
3. 对象常用的属性和方法
JSON.stringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串; JSON.parse() 方法用于将一个 JSON 字符串转换为对象。
hasOwnProperty() 该方法可以判断对象的自有属性是否存在
assign() 该方法主要用于对象的合并
defineProperties()直接在一个对象上定义新的属性或修改现有属性,并返回该对象。
keys() 返回一个由一个给定对象的自身可枚举属性组成的数组
values()返回一个给定对象自己的所有可枚举属性值的数组
entries()返回一个给定对象自身可枚举属性的键值对数组
4.属性的获取
4.1设置
var obj = {};
obj.name='fangfang';
obj['age'] = 20;
4.2 获取
obj.name;
obj['age'];
5.删除
var o2= {
name:'abc',
age:18
};
delete o2.name;
console.log(o2);
5.检测属性
检测属性 该方法可以判断对象的自有属性是否存在
in 运算符 检测属性是否存在于某个对象中,自有属性和继承属性都返回true
var obj={
name:'sonia',
age:22
};
console.log('name' in obj);//自有属性
hasOwnProperty() 方法用于检测属性是否是自有属性,是则返回true,否则返回false
var obj = {
name:'lily'
};
console.log(obj.hasOwnProperty("name"));
6.区别
function Init() {}
Init.prototype.name = 'xyz'; //原型对象
var init = new Init();
init.age = 18;
console.log("name" in init); // true
console.log("age" in init); // true
console.log(init.hasOwnProperty("name")); //false
console.log(init.hasOwnProperty("age")); //true
7.遍历属性 for ... in
var obj = {name:'a',age:20};
for(var key in obj){
console.log(key)
console.log(obj[key])
};
8.序列化
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串
var obj = {name:'a',age:20};
console.log(typeof JSON.stringify(obj))
JSON.parse() 方法用于将一个 JSON 字符串转换为对象
var obj = {name:'a',age:20};
var str = JSON.stringify(obj);
console.log(typeof JSON.parse(str))
六. 函数
JavaScript 函数是被设计为执行特定任务的代码块。
JavaScript 函数会在某代码调用它时被执行。
1. 函数语法
JavaScript 函数通过 function 关键词进行定义,其后是函数名和括号 ()。
函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)
括号可包括由逗号分隔的参数: (参数 1, 参数 2, ...)
由函数执行的代码被放置在花括号中:{}
function name(参数 1, 参数 2, 参数 3) { 要执行的代码 }
2.定义的方式
2.1函数声明
function sum(x,y){
return x+y
};
2.2 函数表达式
var sum2 = function(x,y){
return x+y
}
都是定义函数,那函数声明和函数表达式有什么不同?
2.3 为什么使用函数?如何复用?
能够对代码进行复用:只要定义一次代码,就可以多次使用它。
能够多次向同一函数传递不同的参数,以产生不同的结果。
3. 函数特性
3.1自调用函数
自调用表达式是自动被调用(开始)的,在不进行调用的情况下
3.2 实参和形参
形参相当于函数中定义的变量
实参是在运行时的函数调用时传入的参数
3.3 arguments的用法
Javascrip中每个函数都会有一个Arguments对象实例arguments
它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素
3.4 回调函数
回调函数就是一个通过函数指针调用的函数。
如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,就是回调函数
3.5 理解回调函数
function test (value) {
console.log(value);
}
function fun (callback, value) { //将test方法作为参数传递给fun方法
callback(value);
}
fun(test, 'hello world');
3.6构造函数
是一种特殊的方法
主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符 一起使用
function Person(name,age){
this.name = name;
this.age = age;
};
var ff = new Person("fangfang",18);