JS基础知识day2

        昨天的内容对JS是什么,能干什么做了简单的解释,介绍了JS的三种输出语句,变量,数据类型,以及一些简单的运算,今天的内容会对昨天的学习内容有一定的补充和拓展,希望能够和大家一起学习和进步。

特殊的值

        我们昨天有学到几个特殊的值;

        null

        undefined

        NaN    (not a number) :非数字的集合,不等于任何值;六亲不认,不会和任何人相等,包括自;

console.log(null === null);

console.log(undefined === undefined);

//以上两个特殊的值是等于自己的;

// 两个等号判断的是值相等

        console.log(null == undefined);   // JS规定(和我们的理解不太一样,需要额外记忆)

        // true转数字

        console.log(2 == true);   // false

        console.log(NaN === NaN);  // false  (NAN并不等于自己,它可以是任意值)

 判断是否为数字或者NAN的方法

//isNaN()用于判断是NaN

console.log(isNaN(x));  

//!isNaN()用于判断是数字

console.log(!isNaN(x));

拓展:

// 字符串和字符串比较的时候,比较ASCLL值

console.log('a' < 'b');

console.log('a' > 'A');

//字符串的比较,是一位一位的比

console.log('212' > '2')  //false   

(首先是第一位数字和后面的数字做比较,如果是一样的话,就第二位和后面的数字比较,一位一位比)

//字符串和数字比较的值  转数字进行比较

console.log('12'>2)

比较ASCLL值的网址:ASCII码对照表

Math对象

随机数

        //Math.random()产生【0-1)的随机数,包含0不包含1

eg:  // 取10-20之间的随机数

var y =Math.random();

y = y * 10;

y = y + 10;

console.log(y);

eg:  // 0-100之间的随机数

        // x = x * 100 ;

        x *= 100 ;

        console.log(x);

向上取整

Math.ceil()向上取整

向上 天花板 ceil

x = Math.ceil(x); 取到较大值的概率大

console.log(x);

向下取整

Math.floor()向下取整

向下 底部 floor

x=Math.floor(x); 取不到最大值,取到较小值的概率大

console.log(x);

四舍五入取整

Math.round()四舍五入取整

x = Math.round(x);

console.log(x);

最大值和最小值

通过max和min找出一串数中的最大值和最小值是什么

        var min = Math.min(3 , 2 , 32 , 1 , 0) ;

        console.log(min);

        var max = Math.max(3 , 2 , 32 , 1 , 0) ;

        console.log(max);

拓展:

计算机精度丢失问题

//计算机的计算能力有限,大部分时候算的清楚但是偶尔会有误差

//精度丢失不仅是JS的问题,而是计算机的问题

解决方式:

1.四舍五入取整,取小数点

2.小数化为整数

console.log(0.1+0.2); //0.3000000000004

//(0.1*10 + 0.2*10)/10 

小结:

产生0-1之间的随机数 x

产生0-任何值max之间的随机数 x*max

产生min-max之间的随机数 x*(max-min)+min

        // 产生min-max之间的随机数  x * (max - min) + min

        // var x = Math.random() ;

        // var y = x * (max - min) + min ;

        // y = Math.round(y)


        // var a = Math.round(Math.random() * (max - min) + min)

        var a = Math.round(Math.random() * (20 - 10) + 10) ;
        console.log(a);


        // a = (Math.random() * (max - min) + min)

总结以上可以简写为:

var a =Math.round ( Math.random() * (max - min) +min)

        通过以上学习,可以做出一个随机数值,并单独列出其中的每一位;或者通过一个随机数假设它是以秒为单位,计算出这个数值可以转化为多少小时多少分钟多少秒;

        // 10-20之间
        var x = Math.random() ;

        var y = x * (20 - 10) + 10 ;

        // y = Math.round(y)   y = Math.ceil(y)   都可以取到最大值
        y = Math.floor(y)  // 取不到最大值 


        var si = Math.random() ;
        // si = si * (10000 - 1000) + 1000 ;
        // si = Math.floor(si)

        si = si * (9999 - 1000) + 1000 ;
        si = Math.round(si) ;

        // 1234
        var qian = Math.floor(si / 1000) ;

        // 234
        var bai = Math.floor(si % 1000 / 100) ;

        // 34
        var shi = Math.floor(si % 100 / 10) ;

        var ge = Math.floor(si % 10 / 1) ;


        // 3682s  小时,分钟,秒    1 1 22s

        var s = 3682 ;

        var day = Math.floor(s / (24 * 3600)) ;

        var hour = Math.floor(s % (24 * 3600) / 3600) ;

        var minute = Math.floor(s % 3600 / 60) ;

        var second = s % 60 ;

        console.log(hour , minute , second);

操作标签对象

        // 认识对象 : 属性 + 方法(函数)

        //   对象.姓名

        //   对象.性别

        //   对象.爱好

        //   对象.敲代码('hello world')

        // 带括号的叫函数

        // console.log()  

        // Math.random()  函数  0-1

        // Math.floor()

在文档中找到ID为括号中内容的元素: document.getElementById()

绑定点击事件:a.onclick = function (){}

 判断语句

程序的三大流程控制语句

        顺序结构 从上而下执行代码

        选择结构 判断

        循环结构 重复的做一件

选择结构

单分支语句:

有条件的执行代码

语法:if(条件){

条件满足时执行的代码

}

不建议写,执行效率低,每一条单分支语句都会执行判断

双分支语句:

语法:if(条件){

条件满足执行的代码

}

else{

条件不满足的代码

}

多分支语句:

if(条件){

条件满足执行的代码

}

else if(条件2){

条件不满足的代码

}

else if(条件3){

条件不满足的代码

}

//底下的else可有可无

else{

以上条件都不满足

}

        双分支语句和多分支语句相较于单分支语句执行起来更简单,找到自己需要的值之后就会结束操作。

if语句是可以进行嵌套使用的

if(){       

                 if(){

                }

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值