函数返回值

函数返回值和函数传参正好相反,函数传参是我们可以把一些东西传到函数里面去,函数返回值是函数可以把一些东西传到外面来。

<script>
function show()
{
return 12;
}
alert(show());// 弹出12 在哪调用返回到哪
</script> <script>
function show(a, b)
{
return a+b;
} alert(show(3, 5));//弹出8
</script>

一个函数应该只返回一种类型的值

<script>
function show()
{
}
alert(show());
</script>

//弹出 undifined 函数也可以没有返回值

函数传参

可变参(不定参):arguments 是一个数组,参数的个数可变,参数数组
例子 求和

<script>
function sum()
{
var result=0;
for(var i=0;i<arguments.length;i++)
{
result=result+arguments[i];
}
return result;
}
alert(sum(12, 6, 8, 6, 8,8));

css(oDiv, 'width') 获取样式

arguments[0]   oDiv
arguments[1]   width
arguments[2]    200px

css(oDiv, 'width', '200px') 设置样式

<div id="div1" style="width:200px; height:200px; background:red;">  </div>

<script>

function css()
{
if(arguments.length==2) //获取
{
return arguments[0].style[arguments[1]];
}
else
{
arguments[0].style[arguments[1]]=arguments[2]; //设置
}
} window.onload=function ()
{
var oDiv=document.getElementById('div1'); //alert(css(oDiv, 'width')); css(oDiv, 'background', 'green');
};
</script>

用传参的方式 obj, name, value

<script>
function css(obj, name, value)
{
if(arguments.length==2) //获取
{
return obj.style[name];
}
else
{
obj.style[name]=value;
}
} window.onload=function ()
{
var oDiv=document.getElementById('div1'); alert(css(oDiv, 'width')); //css(oDiv, 'background', 'green');//设置
};
</script>

取非行间样式(不能用来设置):
obj.style用来获取行间样式
obj.currentStyle[attr] 用来获取非行间样式 不过只能兼容ie 火狐谷歌不兼容
getComputedStyle(obj, false)[attr]  兼容火狐谷歌 不兼容ie

复合样式:background、border
单一样式:width、height、position

#div1 {width:200px; height:200px; background:red;}
<script>
function getStyle(obj, name)
{
if(obj.currentStyle)
{
return obj.currentStyle[name];
}
else
{
return getComputedStyle(obj, false)[name];
}
} window.onload=function ()
{
var oDiv=document.getElementById('div1'); alert(getStyle(oDiv, 'backgroundColor'));//background、border属于复合样式需要写成backgroundColor, borderWidth
};
</script> 
<div id="div1"></div>

数组的使用

数组定义的两种方法
var arr=[12, 5, 8, 9];
var arr=new Array(12, 5, 8, 9); 没有任何差别,[]的性能略高,因为代码短

数组的属性 length
既可以获取,又可以设置
例子:快速清空数组

<script>
var arr=[1,2,3];
//alert(arr.length); //弹出数组的长度 
alert(arr.length=0);//设置数组的长度为0,即清空数组
</script>
数组使用原则:数组中应该只存一种类型的变量
数组添加、删除元素

添加
push(元素),从尾部添加
unshift(元素),从头部添加
删除
pop(),从尾部弹出
shift(),从头部弹出

插入、删除
splice (开始,长度)             删除
splice(开始, 长度,元素…)   先删除,后插入

splice (开始,长度)             删除
<script>
var arr=[1,2,3,4,5,6];
arr.splice(2, 3); //删除:splice(起点, 长度)从第二个位置开始即从数字3开始,删除三个
alert(arr); //弹出的是 1,2,6
</script>
splice(开始, 长度,元素…)   先删除,后插入
<script>
var arr=[1,2,3,4,5,6];
arr.splice(2,0,7,8,9); //先删除在加入:splice(起点, 长度,元素...)从第二个位置开始即从数字3开始,删除0个插入7,8,9
alert(arr); //弹出的是 1,2,7,8,9,3,4,5,6
</script>

转换类

concat(数组2)  连接两个数组

<script>
var a=[1,2,3];
var b=[4,5,6];
//alert(a.concat(b)); //弹出1,2,3,4,5,6 a在左边弹出来的a也在左边
alert(b.concat(a)); //弹出4,5,6,1,2,3 b在左边弹出来的b也在左边
</script>

join(分隔符)

<script>
var arr=[1,2,3,4];
//alert(arr);//弹出的是1,2,3,4
alert(arr.join('-'));//弹出的是1-2-3-4
</script>

排序sort

排序一个字符串数组
排序一个数字数组

排序一个字符串数组 
<script>
var arr=['about', 'class', 'die', 'best', 'embed'];
arr.sort();
alert(arr); //弹出的是about,best,class,die,embed
</script>
比较函数 排序一个数字数组
<script>
var arr=[12, 8, 99, 19, 112]; arr.sort(function (n1, n2){
return n1-n2; //按照从小到大排列 弹出112,99,19,12,8
//return n2-n1; //按照从大到小排列 弹出8,12,19,99,112
});
alert(arr);
</script>

03.深入javascript的更多相关文章

  1. 【干货分享】前端面试知识点锦集03(JavaScript篇)——附答案

    三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是 ...

  2. 【经验之谈】前端面试知识点总结03(JavaScript相关)——附答案

    目录 三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) 2.说说你对延迟对象deferred的理解? 3.什么是跨域,如何实现跨域访问? 4.为什么要使用模板引擎? 5. ...

  3. 【追寻javascript高手之路03】javascript对象大乱斗

    前言 昨天我们学习了下javascript中函数的参数与作用域的东东,现在回过头来看,其实都是与函数相关的,所以javascript中的函数仍然是王道,我们今天大概会发二篇或者三篇博客一起来巩固我们的 ...

  4. 读书笔记(03) - 性能 - JavaScript高级程序设计

    作用域链查找 作用域链的查找是逐层向上查找.查找的层次越多,速度越慢.随着硬件性能的提升和浏览器引擎的优化,这个慢我们基本可以忽略. 除了层级查找损耗的问题,变量的修改应只在局部环境进行,尽量避免在局 ...

  5. [连载]JavaScript讲义(03)--- JavaScript面向对象编程

  6. 【学习笔记03】Javascript数组学习

    数组定义的方法一: var Myarr=new Array(); //先声明一维 for(var i=0;i<2;i++){ //一维长度2 Myarr[i]=new Array(); //再声 ...

  7. 【前端学习笔记03】JavaScript对象相关方法及封装

    //Object.create()创建对象 var obj = Object.create({aa:1,bb:2,cc:'c'}); obj.dd = 4; console.log(obj.cc); ...

  8. JavaScript中的百变大咖~this

    原文链接:http://www.jeffjade.com/2015/08/03/2015-08-03-javascript-this/ JavaScript作为一种脚本语言身份的存在,因此被很多人认为 ...

  9. javascript 中this详解

    this是每一个想要深入学习Javascript的人必过的一关,我为this看过很多书查过很多资料,虽然对this有了一定的了解并且也经常使用this,但是如果有人问我  this是什么呀? 我依旧不 ...

随机推荐

  1. tyvj1192 迎春舞会之集体舞

    背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 描述 表演者排成n排,构成一个向前的正三角形(在屏幕上,即向下).而就每个人,他有可能正面朝前(小的向前正三角形).或向后三角形(小的向后正 ...

  2. html页面的CSS、DIV命名规则

    CSS命名规则 头:header 内容:content/containe 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:l ...

  3. Python面向对象(一)

    面向对象 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向对象是一种编程 ...

  4. JQuery Mobile 页面参数传递

    在单页模版中使用基于HTTP的方式通过POST和GET请求传递参数,而在多页模版中不需要与服务器进行通信,通常在多页模版中有以下三种方法来实现页面间的参数传递. 1.GET方式:在前一个页面生成参数并 ...

  5. 【krpano】浏览点赞插件1.1(源码+介绍+预览)

    插件使用说明详见:http://www.cnblogs.com/reachteam/p/5479068.html 插件更新 1.新增测试模式 用户可以使用uid="test"进行本 ...

  6. ios推送-B/S架构-socket

    B/S架构项目,某一用户登录后执行了某些动作需要向在手机登录的对应的用户推送消息 通过socket实现 1.socket服务器:使用C#的window服务(该服务监听两个端口:比如平台8889,手机8 ...

  7. 不会JavaScript能混前端么?能拿到高薪么?

    不会JavaScript能混前端么?能拿到高薪么? 答案是:很难! 为什么这么说呢,理由很简单 1)有很多企业不注重前端开发,当然也就不会给你高薪了,这样的企业以小企业居多. 他们一般对前端开发的认识 ...

  8. iOS 编码转换

    - (NSString *)SaveFileToDocuments:(NSString *)url { // NSString *url = @"http://172.28.250.70/a ...

  9. Note1: windows下Python IDE(Eclipse+Pydev)

    毕设想做一个个性化音乐推荐系统,真的是从零开始学起,通过<推荐系统实践>大致地了解了一些基础知识,目前在啃<集体智慧编程>. 选用的开发环境是 Eclipse+Pydev . ...

  10. 【Javascript】解决Ajax轮询造成的线程阻塞问题(过渡方案)

    一.背景 开发Web平台时,经常会需要定时向服务器轮询获取数据状态,并且通常不仅只开一个轮询,而是根据业务需要会产生数个轮询.这种情况下,性能低下的Ajax长轮询已经不能满足需求,频繁的访问还会造成线 ...