javascript基础概要复习(类型、数组、函数、面向对象)
提要:主要是复习一下,增加Javascript基础理解,以及函数、面向对象的定义使用,为进一步开发使用Nodejs做基础
javascript是弱类型的动态语言。
1.基本数据类型
1.1 随着变量的赋值而类型相应改变
var name='hello'; //string
name=12; //number
name=true //boolean
name=null //null typeof返回的类型是 object定义了,但值为null
undefined 类型 一般指没有定义的变量,null指定义了但是值为null 注意与null区别
1.2 类型之间转换:parseInt()、parseFloat()、
3 种强制类型转换如下:
Boolean(value) - 把给定的值转换成 Boolean 型;
Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
String(value) - 把给定的值转换成字符串;
1.3 isNaN() 函数用于检查其参数是否是非数字值,非数值返回true;
2.程序流程控制
2.1 条件语句
if else语句
if(name==='json'){//=== 不仅仅值相等,类型还要相同
console.log(true);
}
switch case 语句 、等
2.2 循环语句
for语句 for(var i=0;i<10;i++){ //循环体 }
while等
3.javascript 数组用法
定义:
1.var website=[];
2.var website=['aaaa',222,false];
3.var website=new Array();
website[0]='www.baidu.com';
4.var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
5.var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值
添加:
1.索引添加
website[0]='www.baidu.com';
2.push 向数组中最后一个添加 返回数组长度
arrayObj. push([item1 [item2 [. . . [itemN ]]]]);
website.push('www.baidu.com');
website.push(false);
3.unshift 向数组最前插入,返回数组长度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);
website.unshift('wwww.baidu.com');
website.unshift(222);
4.splice 将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);
删除
1.arrayObj.pop(); //移除最后一个元素并返回该元素值
2.arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
3.arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素
4.删除指定元素值
Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } };
读取 遍历
1.索引读取
2.for(var i=0;i<website.length;i++){ console.log(website[i]); }
3.for in
修改
website[0]='www.shine.com';
拷贝
arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向
排序
arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort(); //对数组元素排序,返回数组地址
字符串化
arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
toLocaleString、toString、valueof可以看做join特殊用法。
截取和合并
1.arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
2.arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
这里需要注意length,数组的长度是一个,读写属性,所以说数组的长度,不仅仅是实际存有数据量控制,还能改变数组的length,来改变数组的长度及实际存储值。
prototype几乎每个元素都有此属性,主要作用:使您有能力向对象添加属性和方法。
4.函数
1.关键字 function
2.普通定义
function methodName(name,male){}
3.匿名函数
var remove=function(tmp){
console.log(tmp);
return tmp;
}
使用 var result=remove('jiandanba');
4.使用函数做参数,调用函数,回调函数
function paramMethod(p1,p2,p3){
//to do something
}
function read(p1,p2,callback){
//to do somethine
callback(1,2,3);
}
使用:read("参数1","参数2",paramMethod);
5.嵌套函数定义
function Website(Name,Age,Male){
var name,age,male;
function set(_name,_age,_male){
name=_name;
age=_age;
male=_male;
}
set(Name,Age,Male);
return [name,age,male];
}
使用:var web=Website('zhang',11,true); console.log(web);
5.面向对象用法 (对象中两大元素,属性,方法)
1.基本定义:
var Person={};
Person.name='zhang';
Person.age=123;
Person.male=true;
Person.init=function(tmp){
console.log(tmp);
}
Person.setName=function(_name){
name=_name;
}
Person.getName=function(){
return this.name;
}
console.log(Person);
2.定义 对象直接量
var Person={
name:'zhang',
age:111,
male:false,
setName:function(_name){
this.name=_name
},
getName:function(){
return this.name;
}
}
使用:以上两种其实几乎是一样的:Person.getName();
3.定义 定义函数对象
var Person= function() {
var name= "";
this.getName = function() {
return this.name;
};
this.setName = function(v) {
this.name = v;
}
};
4 原型继承
var Person= new Function();
Person.prototype = {
name : "",
getName : function() {
return this.name;
},
setName : function(v) {
this.name = v;
}
};
使用:3、4使用类似,var p1=new Person();
5 工厂模式
function loadPerson() {
var tmp = new Object();
tmp.name= "";
tmp.getName = function() {
return tmp.name;
};
tmp.setName = function(v) {
tmp.name = v;
};
return tmp;
}
其实这个同第一个相似。这里同时还可以扩展其他设计模式,只是提供一种方式方法
使用:var p1=loadPerson();
相关文章
- JavaScript基础之for
- JavaScript——DOM基础
- JavaScript常用基础算法「建议收藏」
- JavaScript 入门基础 - 对象(五)
- JavaScript学习总结(九)——Javascript面向(基于)对象编程详解编程语言
- javaScript基础练习题-下拉框制作(CSS)详解编程语言
- javascript setinterval的缺陷详解编程语言
- 基于JavaScript的DDoS首次通过安全的浏览器发动攻击
- JavaScript基础问答四
- JavaScript验证浏览器是否支持javascript的方法小结
- javascript面向对象编程基础多态
- JavaScript仿歌词效果
- javascript实现的在当前窗口中漂浮框的代码
- javascript设计模式之单体模式面向对象学习基础
- 菜鸟javascript基础资料整理3正则
- JavaScript中的变量声明早于赋值分析
- 基于javascript闭包基础分享
- JavaScript获取客户端计算机硬件及系统等信息的方法
- javascript数组遍历for与forin区别详解
- JavaScript基础函数整理汇总