JavaScript 函数定义+内置函数使用+array对象+object类型

版权声明:所有内容仅供大家学习与复习使用,请勿用于任何商业用途 https://blog.csdn.net/qq_40828914/article/details/84650210

函数定义

两种格式:

function 自定义函数名称(参数1,参数2,...,参数n){
//函数体
return 返回值;
}

函数表达式写法(匿名函数):

var 变量名称=function(参数1,参数2,...,参数n){
//函数体
return 返回值;
}

区别:
第一种函数调用语句可以在函数定义之前,因为在程序运行阶段,此方式的函数定义将被提升到程序的最开头。
第二种函数调用语句必须放在此函数定义之后,因为只用在该代码被运行到时,函数才被定义。

函数参数的初始化:
这个够强大了,顶了构造函数和重载的功能。。当然和c一样,比Java简洁

function add(x,y){//ES6支持(x=0,y=0)设置默认参数
if(x===undefined){
x=0;
}
//x=x||0;
//x=(x===undefined)? 0:x;
y=y||0;
return x+y;
}
console.log(add(5));//5
console.log(add(5,1));//6

变量作用域:
函数内声明的变量为局部变量
外为全局变量
function run(){
var t=1;//局部,只有函数内的代码能使用。
}
if(t=true){
int dog =1;//全局
}

random()

Math.random()//随机返回0到0.9999...
Math.random()*10//0到9.9999...
Math.floor(Math.random()*10)//0到9....

setInterval()

网页的全局变量在windows对象里面
setInterval()格式:

windows.setInterval(自定义函数,毫秒数);//windows可省

setInterval(function(){//间隔1秒运行此代码},1000);

arduino是不是很类似呢嘻嘻~ 所以说为什么有的单片机用JS语言呢~ ~
void loop(){//循环代码}
例子:

setInterval(function(){console.log('hello');},1000);
//每隔一秒在控制台上显示hello
//下面简化版本
setInterval("console.log('hello');",1000);
//这个有点神似java的lambda

如何停止循环:

var id = setInterval(
function(){
var num=Math.floor(Math.random()*1024);
console.log(num);
},3000);
clearInterval(id);//停止指定识别码的定时循环

setTimeout()

指定时间到时运行一次

setTimeout(
function(){
console.log("该上课了");
},60000);

一分钟到时显示一次

你们看着没有用是吗?那么我告诉你这东西我不让他在控制台输出的话,他就厉害了。可以通过对话框进行人机交互。
例子:
在这里插入图片描述
如果你调到一毫秒的话,他就只能关闭这个页面了,嘻嘻~

数组对象

数组元素从0开始编号
定义数组:

var name = ["jack","jimmy","jam"];
var name= new Array("jack","jimmy","jam");
var name= new Array(3);//三个元素的空字符串
var name = [];//空白数组

由于数组不仅仅时存储编号的空间,他还是个对象,所以就有操作方法和属性。
数组的属性:

   var name = ["jack","jimmy","jam"];
   console.log(name.length());//3
   name.length = 1;//数组里只剩下第一个元素

数组的方法:
添加元素:

name[3]="jack";
name.push("jack");//在name数组后面添加元素
name.unshift("jack")//在name数组最前面添加元素

删除元素:

name.pop();//删除并返回数组最后一个元素
name.shift();//删除并返回数组第一个元素
name.splice(1,1);//从下标1开始删除一个元素。这样的话删除之后下标2成了下标一

替换添加元素:

name.splice(1,1,"jack","jimmy")//删除下标一对应的元素,并且加入两个元素,其中jack的下标成为1

JavaScript数组的特性:
1.一个数组可存储不同类型元素
2.无需指定大小,可根据定义自动扩容
3.若读取超过数组范围的元素,不会产生越界错误,其值为undefined
4.可在一个数组中存储另一个数组,实现多维数组

作为学过java和c++的我来说,这个javaScript数组真的强

读取数组元素:
类似c语言,for循环法

var name=['jack','jimmy','candy'];
var total=name.length;
for(var i=0;i<total;i++){
console.log(name[i]);
}

foreach法
从数组第一个元素开始提取,传递给处理函数做参数,直到取出最后一个

name.foreach(function(val){
console.log(val);
});

object

我们称object为对象,它是一种可存储多组数据的数据类型,
存储其中的元素为属性property
数组元素通过下标数字访问,对象属性通过名称识别key
数组编号和数据值没什么关联,不直观。所以我们如果想要表示一些相关的数据,不妨用对象,这样的话我们调用就只用对象.属性
对象的定义:

//属性名称不含英文数字下划线美元符号以外字符: 
var windowObj={"wall":"ON",  
"door":"OFF",  
"floor":"ON"};
//
var data={"@":100,
" ":"place",
"1":"number"};

对象的使用:

对象.属性名
console.log(windowObj.door);//"OFF"
对象["属性名"]
console.log(data["@"]);//"100"

添加对象属性

var deng={};
deng.power = 10;
deng.LED=13;
//对象属性可以是任意类型
deng.hello=function(){console.log("hello");}
deng.hello();运行hello方法

删除对象属性

delete deng.LED;

delete仅能删除对象的属性,无法删除一般变量和整个对象
如果要某变量空间给系统回收,那么将其值设为null

var obj = {'ss' : 1,
'rr':'open'};
var num= 1;
num=null;
obj=null;//清空对象内容,系统回收存储器空间

列出对象全部属性:

for(var key in deng){
var val=deng[key];
console.log("属性:"+key+" 值: "+val);
}

还可通过in操作符
in操作符用于确认对象的某一属性或方法是否存在

"power" in deng//true
"floor" in Math//true

猜你喜欢

转载自blog.csdn.net/qq_40828914/article/details/84650210