1.javascript 中的函数
1.函数也叫方法
2.实现具体功能的代码的集合【封装】
3.通过关键字 function 创建函数 4.具体格式
4.具体格式 function [函数名称] ([参数列表]){
[return xxxx;]
}
1.function 创建函数关键字
2.函数名称-有时候没有名称【匿名函数】
3. ([参列表])–没有参数的时候空括号()
4.参数–将函数以外的数据值传递到函数里面进行运算【找帮手】,可以有多个,“,” 分割
5.{} --函数体
6.return 语句 – 函数执行完成以后有结果的时候使用 return 语句,出现在函数的最 后一句,函数执行完成以后没有结果的时候不用写 return 语句。
注意:1.有参数的函数,
1 看函数的参数个数,
2 传参数值和变量都可以,
3.注意顺序
2.有返回值的函数,需要定义变量类接收返回值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>javascript 中的函数</title>
<script>
function test1(){
alert("没有参数,没有返回值test1");
}
function test2(num){
alert("有参数,参数值=="+num+", 没有返回值test2");
}
function test3(str){
alert("有参数,参数值=="+str+",有返回值test3");
return"hello";
}
function test4(num,str){
alert("有参数,参数值=="+num+", 参数值=="+str+",有返回值test4");
return num+str;
}
window.onload=function(){
//test1();
//test2(1314);
//var ta="world";
//var val1=test3(ta);
//alert(val1);
//var ta="world";
//var val2=test4(123,test3(ta));
//alert(val2);
var stuobj={getName:function(str){
return str+"san";
}}
var name1=stuobj.getName("zhang");
alert(name1);
}
</script>
</head>
<body>
<h2>1.函数也叫方法</h2>
<h2>2.实现具体功能的代码的集合【封装】</h2>
<h2>3.通过关键字 function 创建函数 4.具体格式</h2>
</body>
</html>
4.作用域【有效范围】
变量的组成
【1.var 2.名称 3.初始值 4.作用域】
变量的作用域就是变量的有效范围
首先要根据位置确定变量
1.全局变量–不在函数【匿名】/对象里面的变量
可以在任何一个函数中被使用
var name="zhangsan";
function test1(){
alert(name);
}
function test2(str){
alert("有参数的函数test2---全局变量=="+name);
}
var obj={getName:function(){
alert(name);
}}
window.onload=function(){
//在有名函数
//test1();
//test2("hello");
//在匿名函数
//alert(name);
//在对象里的函数
//obj.getName();
}
2.局部变量–在函数【匿名】里面的变量,包括函数的参数
只能在定义本变量的函数中被使用。
function method1(){
var name="lisisi";
alert(name);
}
function otherMethod(){
alert(name);
}
var obj={getName:function(){
alert(name);
}}
window.onload=function(){
//method1();
//otherMethod();
//alert(name);
//obj.getName();
}
函数的参数也属于局部变量
function method1(canshu){
alert(canshu);
}
function otherMethod(){
alert(canshu);
}
var obj={getName:function(){
alert(canshu);
}}
window.onload=function(){
//method1("hello");
//otherMethod();
//alert(canshu);
obj.getName();
}
1.对象中的变量只属于本对象
2.对象中函数里面/函数参数—局部变量
3.对象中不在函数里面/不是函数参数—对象的全局变量
4.对象的全局变量,需要使用对象名称
var obj={name:"zhangsanfeng",getName:function(){
var testname="lisisi";
//alert("对象的全局变量=="+this.name);
//alert("对象的全局变量=="+obj.name);
alert("局部变量=="+testname);
}}
function mymethod1(){
//alert(obj.name);
alert("局部变量=="+testname);
}
window.onload=function(){
//obj.getName();
//mymethod1();
//alert(obj.name);
alert("局部变量=="+testname);
}
1.非对象中的情况,局部变量的名称与全局变量的名称一样
2.局部变量的值覆盖了全局变量的值—全局变量的隐藏
3.如果一定要使用被隐藏的全局变量的值–【this.全局变量的名称】
全局变量
var testvalue="zhangsan";
function doTest1(){
//局部变量
var testvalue="lisi";
alert(testvalue); //lisi
//如果一定要使用被隐藏的全局变量的值--【this.全局变量的名称】
alert(this.testvalue);
}
function doTest2(){
alert(testvalue); //zhangsan
}
window.onload=function(){
doTest1();
1.对象中的情况,局部变量的名称与全局变量的名称一样
2.局部变量的值覆盖了全局变量的值—全局变量的隐藏
3.没有全局变量的隐藏,直接使用变量名称是无法访问对象中全局变量,可能访问的是对象外的全局变量
4.如果一定要访问对象中的全局变量通过this/对象名称访问
5.有全局变量的隐藏,直接使用变量名称是访问局部变量,this/对象名称访问对象中的全局变量
var myname="wangwu";
var myobj={myname:"zhangsan",
getName:function(){
var myname="lisi"; //局部变量
//alert(myname);
//alert(this.myname);
alert(myobj.myname);
}
};
window.onload=function(){
myobj.getName();
}
2.javascript 中的运算符
1.算术运算符 + 、-、、/、%【求余/取模】、++【自增】、–【自减】 ++【自增】、–【自减】运算的优先级高于+ 、-、、/、%
2.比较运算符
== [===] != > < >= <=
3.逻辑运算符
|| && !
4.条件运算符 【(判断表达式) ? 数值 1 : 数值 2】 ()? :
5.typeof 操作符–检测变量的数据类型
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>运算符</title>
<script>
window.onload=function(){
//var num1=10;
//var num2=10;
//document.write("<h1>"+num1+"+"+num2+"="+(num1+num2)+"</H1>");
//document.write("<h1>"+num1+"-"+num2+"="+(num1-num2)+"</H1>");
//document.write("<h1>"+num1+"*"+num2+"="+(num1*num2)+"</H1>");
//document.write("<h1>"+num1+"/"+num2+"="+(num1/num2)+"</H1>");
//document.write("<h1>"+num1+"%"+num2+"="+(num1%num2)+"</H1>");
//++自增1
//变量++ 先用后加1
//document.write("<h1>"+num1+"++ =="+(num1++)+"</h1>");
//document.write("<h1>"+num1+"</H1>");
//2.++变量--先用后用1
//document.write("<h1>++"+num1+" =="+(++num1)+"</h1>");
//document.write("<h1>"+num1+"</H1>");
//自减1
//1.--变量--先用后减1
//document.write("<h1>"+num1+"-- =="+(num1--)+"</h1>");
//document.write("<h1>"+num1+"</H1>");
//1.++变量--先减1后用
//document.write("<h1>--"+num1+" =="+(--num1)+"</h1>");
//document.write("<h1>"+num1+"</H1>");
/*
//2.比较运算符 == [===] != > < >= <=
var num1=10;
var num2=3;
document.write("<h1>"+num1+">"+(num2)+"="+(num1>num2)+"</h1>");
document.write("<h1>"+num1+"<"+(num2)+"="+(num1<num2)+"</h1>");
document.write("<h1>"+num1+">="+(num2)+"="+(num1>=num2)+"</h1>");
document.write("<h1>"+num1+"<="+(num2)+"="+(num1<=num2)+"</h1>");
document.write("<h1>"+num1+"=="+(num2)+"="+(num1==num2)+"</h1>");
document.write("<h1>"+num1+"!="+(num2)+"="+(num1!=num2)+"</h1>");
//[= 赋值]
var num1=10;
var num2="10";
document.write("<h1>"+num1+"=="+(num2)+"="+(num1==num2)+"</h1>");
document.write("<h1>"+num1+"==="+(num2)+"="+(num1===num2)+"</h1>");
*/
/*
//3.逻辑运算符 || && !
var boo1=true;
var boo2=false;
document.write("<h1>"+boo1+"||"+(boo2)+"="+(boo1||boo2)+"</h1>");
document.write("<h1>"+boo1+"&&"+(boo2)+"="+(boo1&&boo2)+"</h1>");
document.write("<h1>!"+boo1+"="+(!boo1)+"</h1>");
document.write("<h1>!"+boo1+"="+(!boo1)+"</h1>");
*/
//4.条件运算符 【(判断表达式) ? 数值 1 : 数值 2】 ()? :
/*
var chengji=59;
var res=(chengji>=60)?"及格":"不及格";
alert(res);
*/
//5.typeof 操作符--检测变量的数据类型
var num1=100;
//alert(typeof num1); number
var str="100";
//alert(typeof str); String
var array=[];
//alert(typeof array); Object
var obj={};
//alert(typeof obj); Object
var boo=true;
//alert(typeof boo); Boolean
var n=null;
//alert(typeof boo); Boolean
var und;
alert(typeof und); undefined
}
</script>
</head>
<body>
</body>
</html>