JS学习笔记

1.字符串长度

length获取字符串长度

var str="我是程序猿";
alert(str.length);

2.字符串拼接

数值相加,字符相连

变量不能写在字符串里面,是通过和字符串相连的方式

console.log('沙漠'+'骆驼');

3.数字型转为字符串类型

//变量.toString()
var num=1;
var str=num.toString();
console.log(str);
//String(变量)
console.log(String(num));
//隐式转换,拼接字符串
console.log(num+'');

字符型转化为字符型

//转换为整型
parseInt('78');
//转换为浮点型
parseFloat('78.21');
//强制转换
Number('12');

4.行内式,内嵌式,外部

5.数组

//1.利用new创建数组
var arr=new Array();
//arr为数组名
//2.利用数组字面量创建数组
var arr=[];
var arr1=[1,2,'pink',true];
//数组中可以存放任意类型的数据

将数组转换为字符串

var arr=['red','green','blue'];
var str='';
var sep='*';
for(var i=0;i<arr.length;i++)
{
    str+=arr[i]+sep;//将数组转换为字符串并以*分隔
}
//遍历数组,使用length得到数组长度
console.log(str);

6.函数

function getSum(num1,num2)
{
    console.log(num1+num2);
}
getSum(1,3);//调用函数

7.arguments的使用

当不确定参数个数时,使用arguments来获取,arguments是当前函数的一个内置对象,arguments对象中存储了传递的所有实参。 arguments为伪数组,具有length属性,按照索引方式进行存储,

function fn()
{
    for(var i=0;i<=arguments.length;i++)
    {
        console.log(arguments[i]);
    }
}//遍历实参

8.全局变量即全局作用域下的变量,如果在函数内部没有声明直接赋值的变量也叫全局变量

9.(1)预解析:js引擎会把js里面的所有var还有function提升到作用域的最前面,即变量预解析和函数预解析。

变量预解析  把所有的变量说明提升到作用域最前面,不提升赋值操作

函数预解析 把所有的函数声明提升到作用域的最前面,不调用函数

10.对象

对象字面量:花括号{}内包含表达这个属性和方法,{}里面采用键值对的形式表示,键相当于属性名,值相当于属性值(任意类型)

调用对象的属性:1)对象名.属性名

                              2)对象名['属性名']

调用对象的方法:对象名.方法名()

//1.利用字面量创建对象
var obj={
    uname:'刘德华',//1.多个属性和方法中间用逗号隔开
    age:18,
    sayHi:function(){  //2.方法冒号后面跟的是一个匿名函数
        console.log('hi');
    }
}
console.log(obj.uname);
console.log(obj['uname']);//调用对象的属性
obj.sayHi();//调用对象的方法


//2.利用new object创建对象
var obj=new Object();
obj.uname='刘德华';
obj.sayHi=function(){
    consolr.log('hi');
}
console.log(obj.uname);
console.log(obj['uname']);
obj.sayHi();


//3.利用构造函数创建对象(对象实例化)
function Star(uname,age,sex)//1.构造函数名首字母要大写
{                           //2.构造函数不需要return就可以返回结果
    this.name=uname;        //4.属性和方法前面必须有this
    this.age=age;
    this.sex=sex;
    this.sing=function(song){
        console.log(song);
    }
}
var ldh=new Star('刘德华',18,'男');//3.调用构造函数必须使用new
console.log(ldh.name);
console.log(ldh.age);
ldh.sing();
//function 构造函数名()
//{
//    this.属性名=值;
//    this.方法名=function(){}
//}
//new 构造函数名();

new关键字的执行过程

1)new 构造函数可以在内存中创建一个空对象

2)this 指向创建的空对象

3)执行构造函数里面的代码,给这个空对象添加属性和方法

4)返回这个对象

遍历对象

for (var k in obj) {
    console.log(k);//得到属性名
    console.log(obj[k]);//得到属性值
}

    内置对象

1)Math数学对象

 2)日期对象

是一个构造函数必须使用new来调用对象

var date=new Date();//1.使用Date,如果没有参数则返回系统当前时间
console.log(date);
//参数的常用写法 数字型 2019,10,01 或者是 字符串型'2019-10-1 8:9:9'
var date1=new Date(2019,10,01);


//封装一个函数返回当前的时分秒
function getTime(){
    var time=new Date();
    var h=time.getHours();
    h=h <10?'0'+h:h;
    var m=time.getMinutes();
    m=m<10?'0'+m:m;   
    var s=time.get.Seconds();
    s=s<10?'0'+s:s;
    return h+':'+m+':'+s;
}
console.log(getTime());

//获得Date总的毫秒数(时间戳),是距离1970年1月1号过了多少毫秒数
//1.使用valueOf() getTime()
var date=new Date();
console.log(date.valueOf());
console.log(date.getTime());
//2.+new Date()
var date1=+new Date();
console.log(date1);
//3.
console.log(Date.now());

倒计时效果(时间戳来做)

function countDown(time)
{
    var nowTime=+now Date();
    var inputTime=+now Date(time);
    var times=(inputTime-noeTime)/1000;//剩余总的时间秒数
    var d=parseInt(times/60/60/24);//天
    var h=parseInt(times/60/60%24);//时
    var m=parseInt(times/60%60)//分
    var s=parseInt(times%60)
    return d+'天'+h+'时'+m+'分'+s+'秒'; 
}

3)数组对象

//1.数组字面量创建
var arr =[1,2,3];
console.log(arr[0]);
//2.new Array()创建
//var arr1=new Array();//创建了一个空数组
//var arr1=new Array(2);//数组的长度为2,里面有两个元素
var arr1=new Array(2,3)//等价与[2,3]


//检测是否为数组
//(1)instanceof 运算符检测
console.log(arr instanceof Array);//结果为true
  //(2)
console.log(Array.isArray(arr))

//添加数组元素
var arr =[1,2,3];
arr.push(4);//末尾增加,push完毕后返回的结果是新数组的长度,
arr.unshift(4);//开头添加,unshift完毕后返回的结果是新数组的长度,
arr.pop();//pop没有参数,删除数组最后一个元素,返回结果是删除的那个元素
arr.shift();//shift没有参数,删除数组第一个元素,返回第一个元素的值

//数组排序
//1.翻转数组
var arr1=['a','b','c'];
arr.reverse();
//2.数组排序
var arr2=[1,4,2,3];
arr2.sort(function(a,b){
    return a-b;//升序排序,b-a降序排序;
});

             

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值