
1. JS基础
1.1 声明变量
- 声明变量
var name ='卡卡卡西';
var adress = '新市毒窝';
var age = 44;
- 同时声明多个变量
function showQx(){
var name ='FXX',
adress = '岗贝毒窝',
age = 19,
info;
alert(info);
}
>>>
undefined
1.2一些方法
-
isNaN
是数字返回false
不是返回true
function showQx(){
alert(isNaN(12)); //fasle
alert(isNaN('fxx')); //true
}
- 字符串拼接
function showQx(){
var name = 'fxx';
var age = 19;
alert('我的名字是:fxx'+name+' ,我的年龄是:'+age+'!'); //fasle
}
-
undefined
和数字相加返回NaN
,和字符串相加把他看成一个字符串
function showQx(){
var name = undefined;
var age = 19;
alert(age+name); //NaN
alert('fxx'+name) //fxxundefined
}
-
null
和数字相加返回原来的数字,和字符串相加把他看成一个字符串
function showQx(){
var name = null;
var age = 19;
alert(age+name); //19
alert('fxx'+name) //fxxnull
}
-
typeof
检测数据类型
function showQx(){
var name = undefined;
var age = 19;
alert(typeof name); //undefined
alert(typeof age) //number
}
- 其他类型转为数字类型
parseInt()
function showQx(){
alert(parseInt(3.14)); //3 取整
alert(parseInt('120px')); //120 取整
alert(parseInt('e120px')); //NaN
}
- 其他类型转为数字类型
parseFloat()
function showQx(){
alert(parseInt(3.14)); //3.14
}
-
转为布尔值
image.png
1.3 三元表达式
条件表达式?表达式1(真):表达式2(假)
function showXQ(){
var a = 4;
var b = a>3?a*5:a-1;
alert(b)
}
1.4 switch

function showXQ(){
var a = prompt('请输出你要的数字:');
switch(parseInt(a)){
case 1:
alert('这是1');
break;
case 2:
alert('这是2');
break;
}
}
2.数组
2.1 声明数组
var a = new Array();
var b = [1,2,3,4,5];
2.2数组遍历
function showXQ(){
var b = [1,2,3,4,5];
for(var i = 0; i<b.length;i++){
alert(b[i]);
}
}
2.3 数组添加元素
function showXQ(){
var b = [1,2,3,4,5];
alert(b);
b[b.length+1] = '直接加一个';
alert(b);
b.push('最后一个啦')
alert(b);
}
2.4 数组转为字符串
var b = [1,2,3,4,5];
b.join(' ');
3.方法
3.1 传参
function showXQ(a,b ){
alert(a+b);
}
showXQ(1,2); //3
showXQ(1,2,3); //3
showXQ(1); //NaN
3.2 函数返回值
- 如果一个函数没有
return
的话,他返回的值是undefined
3.3 arguments
arguments
是内置函数,存储了所有的传参,它是一个伪数组,没有真正数组的一些方法。
function showXQ( ){
for(var i=0;i<arguments.length;i++){
alert(arguments[i]);
}
}
showXQ(1,2,3,4,5);
3.4 用方法名当参数
function showXQ(){
alert('我是showXQ');
}
function b(a){
a();
}
b(showXQ);
3.5 方法的两种生命方式
function a(){
alert('我是a');
}
var b = function(){
return 12;
}
a();
alert(b); //返回的是函数体
alert(b()); //返回的调用后的返回值
3.6 全局变量
var num = 12; //全局变量
function a(){
alert(num);
a = 100; //在函数内部,直接赋值,也是全局变量
}
a();
alert(a);
- 全局变量会在浏览器关闭时候销毁
- 局部变量在程序执行完毕时销毁
3.7 预解析
会将所有变量提升到,函数最前面;
- 报错
console.log(num); //报错
- 返回
undefined
console.log(num); //undefined
var num = 10;
相当于
var num;
console.log(num);
num =10;
- 调用成功
a();
function a(){
alert('我是a')
}
- 报错
fun();
var fun = function a(){
alert('我是a')
}
预解析相当于
var fun;
fun(); //调用一个值类型,直接报错;
fun = function(){
alert('我是a')
}
4.对象
4.1创建对象的3种方式
//1.关键字创建
var Person = {
uname:'fxx',
age:18,
adress:'石井毒窝',
sayHi: function(){
alert('我住在石井毒窝');
}
};
alert(Person.adress);
Person.sayHi();
//2.new object创建
var Person = new Object();
Person.uname = 'fxx';
Person.age =19;
Person.sayHi = function (){
alert('我来自石井毒窝')
}
Person.sayHi();
//3.利用构造函数创建对象
function Person(uname,age){
this.uname = uname;
this.age =age;
this.sayHi = function(){
alert(this.uname+'在石井毒窝')
}
}
var fxx = new Person('fxx',18);
alert(fxx.uname);
fxx.sayHi();
4.2遍历对象
var fxx = new Person('fxx',18);
for(var k in fxx){
alert(k);//k 是属性名
alert(fxx[k]) //obj[k] 得到值
}
5.内置对象
5.1常用内置对象
Math

random()随机数

Date


-
格式化日期
image.png
-
获取时间戳
image.png
-
倒计时
image.png
数组方法
- 检测是否为数组
//1
var arr = [];
var obj = {}
console.log(arr instanceof Array);
//2
console.log(Array.isArray(arr));
-
push()
给数组末尾添加元素
返回值是新数组的长度
var arr1= [1,2,3];
arr1.push('fxx',18);
alert(arr1)
-
pop()
从数组末尾删除元素,一次一个
返回值是删除的数组值 -
reserver()
反转数组
var arr1= [1,2,3];
alert(arr1.reverse())
-
sort()
数组排序
var arr1= [13,4,77,1];
arr1.sort(function(a,b){
return a-b //升序
//return b-a //降序
});
alert(arr1)
-
indexOf()
返回元素位置 - 数组转为字符串
var arr1= [13,4,77,1];
arr1.sort(function(a,b){
return a-b
});
alert(arr1.toString())
alert(arr1.join('-'))
字符串方法
-
indexOf()
返回字符串的位置,没有返回-1
var a = 'abcdefg';
alert(a.indexOf('f'))
- 根据位置返回字符
var a = 'abcdefg';
//alert(a.charAt(3))
//alert(a[0])
//遍历所有字符
for(var i =0;i<a.length;i++){
alert(a.charAt(i))
}
-
substr()
截取字符串
var a = 'abcdefg';
alert(a.substring(0,2))//第一个0是索引号,第二个2是取的字符个数
>>>
ab
-
replace()
替换字符串
var a = 'abcdefg';
alert(a.replace('abc',123))
-
split()
字符串转为数组
var a = 'a-b-c-d';
alert(a.split('-'))
>>>
['a','b','c','d']
网友评论