JS数组与函数

数组 Array

用一个变量表示一个值的集合

直接量创建

var a = []; //创建一个空数组

var a = [1,2,3]; //创建一个数组含有三个元素

构造函数创建

var a = new Array(); //创建一个空数组

var a = new Array(10); //创建一个长度10的空数组

var a = new Array (1,2,3,4); //创建一个数组并初始化赋值

二维数组

直接创建

var a = [[1,2,3],[4,5,6],[7,8,9]]; //创建一个二维数组 理解 a = [0]中有1,2,3 a = [1]中有4,5,6

循环创建

var a = new Array(); //创建一个新数组

for(var i = 0; i

a[i] = new Array(); //声明二维数组,每一个一维里再填进一个一维

for(var j = 0; j

a[i][j] = """; //将所有元素初始化为空

}

}

a[0][0] = 1; //给定义的二维数组赋值、

var a = new Array;

var q = 1;

for(var i = 0; i

a[i] = new Array;

for(var j = 0; j

a[i][j] = q++;

}

}

函数

关键词 function

格式

function 函数名(参数) {

执行代码 ;

}

调用

函数名(参数);

命名函数表达式

var demo = function abc(){

执行代码 ;

}

匿名函数表达式

var demo = function (){

执行代码 ;

}

形式参数

function 函数名(参数) {

执行代码 ;

}

实际参数

函数名(参数);

function 函数名(a , b) {

// 相当于在这里var a , b;

var c = a + b;

document.write(c);

}

函数名(1,2);

可见 3

var demo = function (a , b){

if(a > b){

document.write(a - b);

}else if(a

document.write(a + b);

}else{

document.write(a);

}

}

demo(参数1,参数2);

不定参数

在每个函数中JS语言系统内部会自动创建一个 arguments 的类似数组的 实参列表 (length 长度)

var demo = function (){

var sum = 0;

for(var i = 0; i

sum += arguments[i];

}

document.write(sum);

}

demo(1,2,3,4,5,6,7,8,9,10);

可见 55

程序中函数内部全部解释完后会隐式的增加一条语句 return; 表示终止并返回

显示添加 return

function sum(){

return 123;

}

sum();

此时 sum();的返回值是123;

立即执行函数

(function (){}())

(function (){})()

该函数执行一次立刻自毁不占用内存。

练习题

求 x, y, z 分别的值

var x = 1, y = z = 0;

function add(n){

return n = n + 1;

}

y = add(x);

function add(n){

return n = n + 3;

}

z = add(x);

下面console.log的结果是[1,2,3,4,5]的选项是:

//A

function foo(x){

console.log(arguments);

return x;

}

foo(1,2,3,4,5,)

//B

function foo(x){

console.log(arguments);

return x;

}(1,2,3,4,5)

//C

(function foo(x){

console.log(arguments);

return x;

})(1,2,3,4,5)

//D

function foo(){ bar.apply( null, arguments)}

function bar(x){ console.log( arguments)}

foo(1,2,3,4,5)

请问以下表达式的结果是什么?

parseInt( 3, 8);

parseInt( 3, 2);

parseInt( 3, 0);

A 3,3,3

B 3,3,NaN,NaN

C 3,NaN,NaN,NaN

D other

看下面alert的结果是什么

function b(x, y ,a){

arguments[2] = 10;

alert(a);

}

b(1, 2, 3);

如果函数改成下面,结果又会是什么?

a = 10;

alert(arguments[2]);

随便输入一段字符串 用函数封装 求该字符串字节长度

0~254 为一字节 255~32766为二字节 32767~ 2,147,483,647为四字节

字节查询关键词 charCodeAt 用法 变量.charCodeAt(length);

//A

function a(b){

var sum = 0;

for(var i = 0; i

if(b.charCodeAt(i) >= 32767){

sum += 4;

}else if(b.charCodeAt(i) >= 255){

sum += 2;

}else{

sum++;

}

}

console.log(sum);

}

//B

function a(b){

var sum = 0;

for(var i = 0; i

if(b.charCodeAt(i)

sum++;

}else if(b.charCodeAt(i) >= 255 && b.charCodeAt(i)

sum += 2;

}else{

sum += 4;

}

}

console.log(sum);

}

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180416G1BUJZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券