1.js的函数
**在java里面定义方法
public 返回值类型 void/int 方法名(参数列表){
方法体;
返回值;
}
public int add(int a,int b){
int sum=a+b;
return sum;
}
**在JS里面定义函数的方法(方法)有三种方式
***1)函数的参数列表里面,不需要写var,直接写参数名称
2)js的函数可以有返回值,直接使用return关键词返回即可,不需要声明返回值类型
3)js没有方法的重载概念,后面定义的函数会覆盖前面所写的函数
4)js中的形式参数和实际参数的数量可以是不一致,依然是可以调用。
5)每个函数中都隐藏了一个叫arguments的数组,这个数组用来接收函数调用时传来的实际参数值
6)arguments数组接受完实际参数后,会逐一的依次从左往右赋值给形式参数
如果是实际参数的参数数量大于形式参数,则丢弃剩下的实际参数
实际参数<形式参数: NaN
实际参数>形式参数:取了前面的实际参数后面的参数丢弃。
注意:表单接收的数据全部为string类型
string比较number string会先自动转换成number然后在进行比较;
定义对象
方式一
有参数的构造函数
function 对象名称(形式参数){
定义属性:
定义方法:
}
例:
function Person(name,age){ this 表示当前调用的对象
//定义属性 赋值
this.name=name;
this.age=age;
//定义方法
this.say=function(){
alert("这是一个对象的方法");
}
}
var 变量名=new 对象名称
//创建一个对象
var p=new Person("狗娃",14);
//查看属性值
document.write(p.name);
document.write(p.age);
//调用方法
p.say();
//使用for-in 遍历对象
for(var i in p){
document.write(p[i]+"<br/>");
方式二
无参数的后遭函数
定义对象
function Person(){
}
//创建对象
var p=new Person();
//追加属性
p.name="zjj";
p.age=14;
//追加方法
p.say=function(){
alert("++");
}
第三种方式
使用内置对象 Object对象可以作为任意对象的摸版
/*
创建对象
var p=new Object();
*/
//追加属性
p.name="zjj";
p.age=14;
//追加方法
p.say=function(){
alert("++");
}
方式四 使用字面常量的形式创建对象 json语言
var p={
//定义属性
**每个属性用逗号分开
属性名用引号引上
属性名和属性值用:
最后一个不用逗号隔开
属性名 属性值
“name”:“铁蛋",(逗号)
"age":20,
"say":function(){
alert("');
}
}
使用原型属性给Array对象添加方法
什么是原型
1)js的每个对象中包含有了原型属性(prototype)
2)如果往某个对象的原型属添加了方法,那么添加的这个方法就会自动的添加到当前的
对象的方法中。
3)原型的作用:给内置对象追加方法
function Array(){
//属性
this.prototype=new Prototype();//原型对象伪代码
this.search=function(){
}
}
function Prototype(){
this.search=function(){
}
}
语法:
/*
给Array追加一个search和max方法
*/
Array.prototype.search=function(traght){
for(var i=0;i<this.length;i++){
if(this[i]==traght){
return 1;
}
}
return -1;
}
js函数
第一种方式:
****使用到一个关键字,function
***function 方法名(形式参数列表){
方法体;
返回值可有可无(根据实际需求);
}
代码
使用第一种方式
function test(){
alert("sghjak");
}
//调用法法
test(实际参数列表);
//定义一个有参数的方法 实现俩个数的相加
function add1(a,b){
var sum=a+b;
alert(sum);
}
//add(2,3);
//有返回值得效果
function add2(a,b){
var sum=a+b;
return sum;
}
alert(add2(3,4,5));
第二种方式
****匿名函数
var add=function(参数列表){
方法体和返回值;
}
***代码
//第二种方式创建的函数
var add3=function(m,n){
alert(m+n);
}
//调用方法
add3(4,5);
第三种方式;(用的较少,了解)
****动态函数
***使用JS里面的一个内置对象 Function
var add=new Function("参数列表","'方法体和返回值");
**代码
var canshu="x,y";
var fahgfati="var sum; sum=x+y;return sum;";
var add3=new Function(canshu,fangfati);
alert(add3(4,5));
2.String对象
***属性 length字符串的长度
***方法
var str1=new String("hello");
var str2=new String("hello");
valueof();该方法返回对象的内容是否相等
str1.valueof()==str2.valueof();
str1==str2 false
var str="abc";
var str2="abc";
str1==str2 true;
(1)与HTML相关的方法
-bold():加粗
-fontcolor:设置字符串的颜色
-fontsize():设置字体的大小
-link():将字符串显示成超链接
***str4.link("hello.html");
-sub() sup() :下标和上标
(2)与java相似的方法
-fontcolor();直接给字符串添加颜色
document.write(str.fontcolor("#0000ff");(红绿蓝)
-concat():连接字符串
**//concat方法
var str1="abc";
var str1="dfg";
document.write(str1.concat(str2));
-chadAt():返回指定位置的字符串
**var str1="abcfegh";
document.write(str1.charAt(20);//字符串位置不存在,返回空字符串
-indexOf(): 返回字符串位置
**var str="abcfegh";
document.write(str.indexof("w")); //字符不存在,返回 -1
-split:切割字符串,成数组
**var str="a-b-c-f-e-g-h";
var ar1=str.split("-");
document.write(arr1.length);
-replace(); 替换字符串
*传递俩个参数
--第一个参数时原始字符
--要替换成的字符
***var str="abcfegh";
document.write(str.replace("a","Q");
-substr(start,length)和 substring( start,end)
**var str="abcfeghsdfs";
//document.write(str.substr(5,5); //返回从第五位开始,向后截取五个字符
**从第几位开始,向后截取几位
document.write(str.substring(3,5); //从第几位开始到第几位结束 [3 ,5)
**从第几位开始,到第几位结束,但是不包含最后一位
3.number对象
方式一 :定义一个number对象
var num1=new Number(20);
var num2=new Number(20);
num1==num2; false;
num1.valueof()==num2.valueof(); true;
方式二
var num1=20;
var num2=20;
num1==num2; true
var b1=new Boolean(true);
var b2=new Boolean(true);
b1==nb2; false;
b1.valueof()==b2.valueof(); true;
4.Array对象
**什么是数组?
**使用变量 var m=10;
**java里面的数组的定义 int[] arr={1,2,3};
**定义方式(三种)
第一种: var arr=[1,2,3];
第二种 使用内置对象 Array对象
var arr1=new Array(5);//定义一个数组,数组的长度是五
arr1[0]="1";
第三种:使用内置对象Array
var arr2=new Array(3,4,5);//定义一个数组,数组里面的元素是3,4,5
*数组里面有一个属性 length 获取到数组的长度
alert(arr3.length);
*数组可以存放不同的数据类型的数据。
**创建数组(三种)
/*
数组的长度会随着元素的添加而变化的,不用担心会出现索引位置越界异常
js的可以存放任意类型的元素
*/
- var arr=[10,“hello”,true ];
var arr=new Array();
arr[1]="a";
arr[2]="b";
arr[3]="c";
-var arr=new Array(3);//长度为3的数组
-var arr=new Array(3,4,5);//数组中的元素是3,4,5
**属性:length 查看数组的长度
**方法
-concat()方法:数组的连接
var arr=[1,2,3];
var arr1=[,5,6];
document.write(arr.concat(arr1));
-join();使用指定的字符串,把数组的所有元素连接到一起,最终组成一个新的字符串。
var arr=new Array();
arr[1]="a";
arr[2]="b";
arr[3]="c";
document.write(arr.join("-"));
结果 a-b-c
-push();向数组末尾添加元素,返回数组的新的长度
**如果添加的是一个数组。这个时候把数组当成一个整体的字符串添加进去
var arr=new Array();
arr[1]="a";
arr[2]="b";
arr[3]="c";
document。write(arr.push("gsdjkfsad");
-pop():表示,删除最后一个元素,返回删除的那个元素
var arr=["ff","fasdf","sdf","sdfaf"];
document.write(arr.pop());
-reverse():颠倒数组中的元素的顺序
var arr=["ff","fasdf","sdf","sdfaf"];
document。write(arr.reverse());
5.Date对象
在java里面获取当前时间
Date data=new Date();//取当前的系统日期时间
java :SimpleDateFormat对象 yyyy-mm-dd格式化
//格式 2018年1月14日 16时35分30秒
//toLocaleString()
在JS里面获取当前时间
var date=new Date()
//获取当前时间
document.write(date)
//转化成习惯的格式
data.toLocaleString();
**获取年的方法
getFullYear();得到当前的年
*获取当前的月方法
getMonth();获取当前的月
***返回的是 0~11月如果想要得到准确的值:加1;
**获取当前的星期
getDay();星期。返回的是(0~6);
外国朋友,把星期日作为一周的第一天,星期日返回的值是0
而星期一到六返回的值是 1~6;
**获取当前的日
getDate();获取当前的天
**获取当前的小时
getHours() 获取小时
**获取当前的分钟
getMinutes();分钟
**获取当前的秒
getSeconds();秒
**获取毫秒数
getTime()
返回的是1970 1 1 至今的毫秒数
**应用场景
***使用毫秒数处理缓存的效果(不有缓存)
http://www.baidu.com?毫秒数
6.Math对象
*数学的运算
里面的都是静态方法,使用可以直接使用Math.方法();
1)ceil(x);向上舍入 如果有小数的话,直接加一
2)floor(x);向下舍入 如果有小数部分的话,直接丢弃小数部分,保留整数位
3)round(x);四舍五入
4)random()得到随机数(伪随机数) 0~1 【0 1)
5)max() 返回最大值
6)min() 返回最小值
得到0~9的随机数
Math.random()*10
Math.max(10,5,60);
Math.min(10,50,-2);
7.js的全局函数
由于不属于任何一个对像,直接写名称使用
**eval() 执行JS代码(如果字符串是一个JS代码,使用方法直接执行)
******var str="alert("1234");";
eval(str);
**encodeURI();对字符进行编码
**decodeURI()对数字进行解码
encodeURIComponent()和decodeURICompoent();
**isNaN判断当前是否字符串是否是数字
var str="asd";
alert(isNaN(str));
**如果是数字,返回false
**如果不是数字返回true
**parseInt()类型转换
varstr="123";
document.write(parseInt(str));
8.js函数类似重载
**什么是重载?方法名相同,参数不同
JS的重载是否存在?不存在
**调用一个一个方法
**把存在的参数保存到一个叫 arguments数组里面
**JS里面是否存在重载?(面试题目)
(1)JS里面不存在重载
(2)但是可以可以通过其它方式模拟重载的效果(通过arguments数组来实现)
function add(){
if(argumnets.length==2){
return argumnets[1]+arguments[2];
}
else
return 0;
}