js基础篇day01

77 阅读6分钟

骗别人容易骗自己的难,诸恶莫作众善奉行!

image.png

1.js编写位置:

(1)可以在元素标签内:

 <!-- 点击 -->
    <button onclick="alert('点击到了')">按钮</button>
    <!-- 超链接 -->
    <a href="JavaScript:alert('点到了')">点击链接</a>

(2)可以在script标签内:

   <script>
        alert('3434')
   </script>

(3)可以外部引入:

<script src="./js.js">
        
</script>
2.注释:

选中要注释的代码: ctrl+/

//
3.语法规范:

(1)区分大小写。

(2)以分号结尾。

(3)保留的关键字不能使用

(4)命名不能以数字开头,可以以字母、_ 、$组合,规范驼峰命名

(5)js底层保留标识符实际保存的是uicode编码 utf8

4.数据类型:引用数据类型和基本数据类型。

引用数据类型:object。

基本数据类型:

(1)number 数字

(2)string 字符串

(3)null 空

(4) undefined 未定义

(5)boolean 布尔值

5.字面量和变量

字面量:不可改变的常量。例如:1233434等等。

变量:被赋值的壳,例如:x=y ,y=1.

// 16进制
    a= 0X10;
    console.log(a);
    // 8进制
    b = 070;
    console.log(b);
    b=parseInt(b,10)
    console.log(b)
    // 2进制
//     c= 0b80;
// console.log(c)
6.js的数值范围最大与正最小值:

(1)最大值:

Number.MAX_VALUE 

(2)正的最小值:

Number.MIN_VALUE
7.常规转译符:

(1)\n 换行

(2)\t 制表符

(3)\u 在js里可以转使用utf8底层编码;

8.强制数据类型转换

(1)转字符串:tostring()

var a=123;
console.log(typeof(a),a);
 
var b= a.toString();
console.log(typeof(b),b);

var c = 123;
 console.log(typeof(c),c);
 var  c= String(c);
 console.log(typeof(c),c);

该方法不会影响原变量但对于null 和undefined无效,可以使用string()方法。

(2)转number :number()函数

如果是纯数字 转为数字

如果是非数值内容 转为NAN

如果是空 或者是空格字符串直接为0

undefined转数字是NAN

true 0 false 0

var aa = '';
console.log(typeof(aa),aa );
var bb = Number(aa);
console.log(typeof(bb),bb );

(3)布尔值:Boolean()

除了0和NAN都是true

除了空串都是true

undefined false

obect true

9.运算操作符
// 先转换在计算
// 任何值和NAN计算都是NAN
// 串 + 串 = 拼串  还是字符串
// 隐式转换
// 任何值和字符串加串等于字符串
// 从左往右算
// 任何值 - * /时候都会转成number
//  -0  *1 /1 隐式转换
//  %取余
10.一元运算符。
// 一元运算符 只需要操作一个数
//  typeof    + 正号  -符号
// 和数学一样 取反 
// 对于非number先转换在运算 可以隐式转换
//   原理和number()函数一样


var  a='123';
console.log(typeof(a))

a= -a;
console.log(typeof(a))
//  例子
b= 1 +  + '2' + 3;
console.log(typeof(b))

11.自增h和自减
        // 自增 ++
        // 对于一个变量以后 原变量的值会立即增加1
        //  后++ (a++) 前 ++ (++ a) 
        //  不同的是值不同 a++ 表达的是自增前的值  ++a是自增后的值
        var a = 1;
        a = a++;
        console.log(a)
        a++;
        console.log(a)
        b = 10;
        b = b++ + ++b + b;
        //  第一个b 当前表达是 10 第二个是表达式12 第三个 12
        // 从左往右执行
        // 34
        console.log(b)
       // 自减 --
       // 在自身的基础上减一
      // 前 --a  后 a-- 立即使原变量值减一 
      //  a-- 自减前的值
      //  --a 自减新值 

运算练习:

     var n1 = 10;
            n2 = 20;
        var n = n1++;
        console.log(n);
// 10
        console.log(n1);
// 11
        n = ++n1;
        console.log(n)
// 12
        console.log(n1)
// 12
        n = n2--;
        console.log(n)
// 20
        console.log(n2)
// 19
        n = --n2;
        console.log(n)
// 18
        console.log(n2)
// 18

12.逻辑与 逻辑或

       //  逻辑运算符号  非!  与&&  或||
        // 如果对非布尔值进行元素转换,回先转为布尔值,然后取反
        // 两次取反转为布尔值
        // !
        var a = true;
        a = !!a;
        console.log(a);

        //  &&
        // 只要有一个false是时候返回false 
        // 全为true时候true
        // 如果都为true则返回最后的 如果都为false则返回前的
        var result = false && false;

        console.log(result);
        //  ||
        // 只要有一个true就是true
        // 都为false就是false
        // 如果第一个为ture就返回true
        // 如果都为false则返回最后一个
        var dd = true || false;
        console.log(dd)
13. = 说明
        //  相等运算符用来比较值是否相等
        //  =  一个是赋值
        //  != 不相等
        //  == 判断两个值是否相等 不能有空格
        //  undefined衍生自null
        // ===不会做类型转换
        // !==不全等
        console.log(undefined == null)
        // NAN不和任何值相等
        console.log(NaN == NaN)
        // 判断是不是NaN
        isNaN();
        //  null不等于0
        console.log(null == 0)
        
        
           // 对于非数值转换时先转换在比较
        // 任何值和NAN比较时候都是false
        var a=10>5;
        console.log(a)
        aa =true>false;
        console.log(aa);
        // 两个字符串比较时候比较的事字符串编码
        ss= "a" > "b";
        console.log(ss)
14.uicode码使用
  <!-- 网页中使用的是10进制,要在计算机中转换 -->
    <!-- &# -->
    <h1>&#64;</h1>
    <script>
        //  js中使用使用转译 \u
        console.log('\u0040')
        // @
    </script>
15.三元运算
       // 条件运算符 ?语句 1 : 语句 2
    //    如果表达式非布尔值会转换为布尔值
        var a = 10;
        b = 20;
        c=100;
        a > b ? alert('小于') : alert('大于')
           
    max= a > b ? a : b 
    console.log('max=' +max)
    max= max >c ? max :c 
    console.log('max=' + max) 
    // 套三元
    max = a >  b ? a > c ? a : c :b > c ? b : c
    console.log(12,max)
   max = a >  b ? (a > c ? a : c) :(b > c ?b : c)
    console.log('1231',max)
    // 逻辑与
    max = a > b && a>c ? a :  b>a && b>c ? b : c
    console.log('逻辑与',max)
16. if 判断
    <!--  prompt(): 尅弹出一个提示框,该提示框会带有一个文本框 -->
<!-- 返回的是string -->
    <script>
        var chengji = prompt('请输入成绩');
        if (chengji > 100 || chengji < 0 || isNaN(chengji)) { alert('你能靠这么高') } else {
            if (chengji == 100) {
                alert('BMW')
            } else if (chengji >= 80 && chengji <= 99) {
                alert('iphone15')
            } else if (chengji >= 60 && chengji < 80) {
                alert('参考书')
            } else {
                alert('挨打')
            }

        }
        var a = prompt('请输入身高');
        b = prompt('请输入彩礼');
        c = prompt('请输入颜值');
        if (a >= 180 && b >= 1000 && c >= 500) {
            alert('我一定要嫁给他')
        } else if (a >= 180 || b >= 1000 || c >= 500) {
            alert('比上不足比下有余,嫁吧')
        } else if (a < 180 && b < 1000 && c < 500) {
            alert('坚决不嫁')
        }

         var a=+ prompt('数字1');
             b=+ prompt('数字2');
             c=+ prompt('数字3');
            if(a<b && a<c){
                if(b<c){
                    alert(a+','+b+','+c)
                }else if(b>c){
                    alert(a+','+c+','+b)
                }
            }else if(b<a && b< c){
                if(a<c){
                    alert(b+','+a+','+c)
                }else if(a>c){
                    alert(b+','+c+','+a)
                }
            }else if(c<a && c<b){
            if(a<b){
                alert(c+','+a+','+b)
            }else if(a>b){
                alert(c+','+b+','+a)
            }
            }

17.switch
 // switch语句
        // switch(条件表达式){
        //     case 表达式:
        //     语句...
        //     break
        // }
        //  在执行时一次降case后的值和switch进行全等比较
        // 如果为真当前代码开始执行
        //  break 退出语句

        var score = 55;
        switch (parseInt(score / 10)) {
            case 10:
            case 9:
            case 8:
            case 7:
            case 6:
                console.log('合格');
                break;
            default:
                console.log('不合格');
                break;
        }
        switch (true) {
            case score >= 60:
                console.log('合格');
                break;
            default:
                console.log('不合格');
                break;
        }
        //  while循环
        // while(条件语句){
        //     语句
        // }
        // var n = 1;
        // while (true) {
        //     alert(n++);
        //     if (n == 10) {
        //         break;
        //     }
        // }
        //  do...while先执行性 再判断。可以保证至少循环一次
        // while先判断在执行
        // var n = 1;
        // while (n<106) {
        //         document.write(n+'<br/>')
        //          n++;
        // }

        var money = 1000;
        var n = 0;
        while (money <= 5000) {
            money *= 1.05;
            n++;
        }
        console.log(money)
        console.log(n)

18.for 循环

   // var a = 1;
        // while (a < 10) {
        //     a++;
        //     console.log(a)
        // }
        //  for循环语法: 
        // for(1 初始化表达式; 2 条件表达式; 4更新表示式){
        //     3 语句
        // }

        // 执行表达式初始化变量
        // 执行条件表达式 判断是否执行循环
        // 执行更新表达式
        // for(var i = 0; i<10;i++){
        //     console.log(i)
        // }
        // for(var i=1,sum=0;i<=100;i++){
        //     if(i%2 !=0){
        //         sum=sum+i;
        //     }
        // }
        // console.log(sum)

        // for(var a=1,su=0,j=0;a<=100;a++){
        //     // 不能等于1
        //     if(a%7 ==0){
        //         su=su+a;
        //         j++;
        //     }
        // }
        // console.log(su)
        // console.log(j)




        // for (var d = 100; d < 1000; d++) {
        //     var bai = parseInt(d / 100);
        //     var shi = parseInt((d - bai * 100) / 10);
        //     var ge = d % 10;
        //     if (bai * bai * bai + shi * shi * shi + ge * ge * ge == d) {
        //         console.log(d)
        //     }

        // }


        var num = prompt('请输入大于1的数组')
        if(num<=1){
            alert('不合法')
        }else{
               var flag=true;
            for(var i=2;i<num;i++){
                if(num % i ==0){
                    flag=!flag;
                }
            }
            if(flag){
                alert('是质数')
            }else{
                alert('不是质数')
            }
        }

坚持,共勉!