JavaScript01

JavaScript
个人总结,不足请原谅,如需完整总结或技术探讨请私信不胜感谢:)
                     组成
  • ECMAScript标准----基本的语法和基本对象
  • DOM:Document Object Model 文档对象类型
  • BOM:Broswer Object Model 浏览器对象模型
              编译
  • 把代码转换成计算机所认知的二进制
  • JS是一门脚本语言:不需要编译
  • JS是一门弱类型语言,声明变量都用var
  • JS是一门动态类型语言:认知当前的这个变量是什么类型
  • JS是一门解释性语言
JavaScript最初目的
  • 解决浏览器和服EvernoteEvernote务器之间交互的问题}
JavaScript现在的功能:
  • 交互的问题
  • 特效
  • 游戏
  • 服务器端的开发
  • 移动开发
HTML:展示信息
CSS:美化页面
JavaScript:实现浏览器和服务器交互,有计算和验证的能力
JS点出来的东西未必能用,点不出来的东西或许可以用(需要理解---长期)对象
JS的注意问题
  • 变量有大小写之分
  • 弱类型语言,声明变量都用var
  • 字符串用单引号或者双引号都可以(JS中的单引号或者双引号都表示字符串)推荐用双引号,(不得已用单引号----和HTML嵌套的时候)
  • 每行代码结束用分号
JS中的注释
---对代码的解释,注释中的代码不执行
  • 单行注释 //
  • 多行注释 /*注释内容*/
  • HTML中的注释 CSS中的注释和JS的多行注释一样
JS代码的书写位置
  • script标签中书写,可以写在HTML页面的任何位置(一般写在head标签中,也在body中写)---script标签在页面中可以存在多对
  • 内联方式,嵌入在HTML标签之中
  • 内部引用,直接在页面的script标签中写JS代码
  • 外部引用,JS代码放在一个Js文件中,然后引用
  • JS的书写位置.html
JS代码注释事项
  • 如果script标签中代码出错,回影响该标签后的代码执行,但是不会影响后面其他的script标签中的内容
  • 不要在引用外部的JS标签中写其他script代码
异步和同步
  • 异步:多人做多个事
  • 同步:一人有顺序的做多件事
  • script两个属性:async defer 均为异步
    • async的属性的值就是其本身:页面加载就开始下载目标文件,下载完毕后立刻执行
    • defer的属性的值就是其本身:页面中的所有内容全部加载完毕后,下载完毕后才执行
    • 一般HTML标签中如果属性和值就是自己,并且只有一个,那么值可以省略
示例
变量位置交换
第一种
        var a=1;
        var b=2;
        var tem;
        console.log("第一次打印:");
        console.log(a);
        console.log(b);
        tem=a;
        a=b;
        b=tem;
        console.log("第二次打印:");
        console.log(a);
        console.log(b);
                              第二种
        var a=1;
        var b=2;
        console.log("第一次打印:");
        console.log(a);
        console.log(b);
        a=a+b;
        b=a-b;
        a=a-b;
        console.log("第二次打印:");
        console.log(a);
        console.log(b);
                              第三种
        var a=1;
        var b=2;
        console.log("第一次打印:");
        console.log(a);
        console.log(b);
        a=a^b;
        b=a^b;
        a=a^b;
        console.log("第二次打印:");
        console.log(a);
        console.log(b);
交换变量.html
变量的声明及数据类型
  • 变量的命名:由字母
    • 下划线或者$符号开头,中间包含字母\下划线或者$符号\或者数字,推荐变量最好不要以$符号---要学习jQuery,里面都是$开头
    • 变量名要有意义,最好用单词
    • 如果变量名是多个单词组合的,那么第一个单词的第一个字母小写,后面的单词的第一个字母要大写---驼峰命名法
    • 变量声明可以一次性声明多个变量
JS中的原始数据类型
  • Number,String,Undefined,Null,Object,Boolean
    • null类型的值只有一个就是null
    • undefined类型的值只有一个undefined---未定义
    • boolean(bool)布尔类型---1,0或true,false或真,假
变量返回值
  • undefined----未定义,如果一个函数没有明确的返回值,但接收结果了,其也是underfined
  • 显示变量的类型
    • typeof
      • typeof 变量名
      • typeof (变量名)
      • 变量声明.html
  • 如果要使用变量,最好先判断这个变量的类型是不是undefined或者这个变量的值是不是null
      <!--判断是否为underined或null类型-->
       var def;
       if(typeof (def)=='undefined'||def==null){
           console.log("变量没有意义,不能参与运算");
       }else{
           console.log("可以使用");
       }
八进制,十六进制
       var number=0xa;//十六进制
       console.log(number);//是以十进制的方式输出

       var num1=020;//八进制
       console.log(num1);//以十进制显示
              不要用小数验证小数
       var num1=0.1;
       var num2=0.2;
       var sum=num1+num2;
       console.log(sum);
              最大值最小值
console.log(Number.MAX_VALUE);//最大值 
           console.log(Number.MIN_VALUE);//最小值
字符串
  • string类型,可以用单引号也可以用双引号
  • 特性:不可变
  • +用在两个字符串中间叫拼接或者叫连接
  • +一个字符串和一个数字也是拼接
  • 如果是减号,那么字符串中是数字会进行运算
其它类型转布尔类型
       console.log(Boolean(10));//true
       console.log(Boolean(1));//true
       console.log(Boolean(0));//false

       console.log(Boolean("hello"));//true
       console.log(Boolean(""));//空字符串false
       console.log(Boolean(" "));//true

       console.log(Boolean(undefined));//false
       console.log(Boolean(null));//false


       var obj=new Object();//创建对象
       console.log(Boolean(obj));//true
       // 当一个变量没有赋值
        //当一个变量声明了没有初始化
数据类型转换
其他类型转数字类型
  • Number(变量)
  • parseInt(变量)
  • parseFloat(变量)---遇见字母立刻停止,parseFloat能够把整数部分一起截取,转换成number首个字符必须为数字
  • undefined和任何数运算结果都是NaN
  • null可以当做0
//        console.log(parseInt("23"));//23
//        console.log(parseInt("23.5"));//23
//        console.log(parseInt("23rf"));//23
//        console.log(parseInt("fe23"));//NaN
//        console.log(parseInt("23.8.9"));//23
//       console.log(parseInt(true));//NaN
//       console.log(parseInt(null));//NaN



//        console.log( parseFloat("23"));//23
//        console.log( parseFloat("23.5.6"));//23.5
//        console.log( parseFloat("fd23.5"));//NaN
//        console.log( parseFloat("23.9fdf"));//23.9
//        console.log( parseFloat("000023"));//23  NaN


//        console.log(Number("45"));
//        console.log(Number("45.5"));
//       console.log(Number("045"));//45
//        console.log(Number("45f"));//NaN
//        console.log(Number("f45"));//NaN
其他转字符串
                         转换成string(number/boolean/undefined/null)
  •         a)变量+""----原有变量不会改变
  •         b)变量2=String(变量1);
  •         c)变量.toString()---只能转换number和boolean
其他转布尔
 
 转化成bool
        ◇string: false:"" | true: "  ","abc",
        ◇number: false:0 | true:任何除0数字
        ◇undefined null都是false

        1.Boolean(变量)---把变量转换成bool类型,原变量不变
        2. !!变量---一个叹号为取反,两个叹号为原值,转换为bool类型
       
从页面获取信息
        prompt() confirm() :前者获取字符串,后者获取boolean
        alert()无法获取值,也可以理解为获取的值为undefined
               流程控制:
    1.顺序结构
        从上往下,从左到右。从内到外
    2.选择结构   

        if
            if语句
            ◇第一种:直接进行if判断
                if () {

                };
                // 括号内为布尔类型值,如果为true,则执行大括号内内容
            ◇第二种:直接进行if判断,否则进行else
                if () {

                }
                else{

                }

            三元运算:一定程度上可以替换if..else    执行程序太多的时候不能替代
            ◇//第三种:直接进行if判断,否则进入else if,再否则进入else。
                //满足哪个条件则进去,否则进入最后一个
                if () {

                }
                else if () {

                }
                .
                .
                .
                else{

                }

            第四种,直接进行if判断,否则进入else if。不存在最后的else。满足条件则运行,不满足则不运行


          
  // 案例
                var bool=confirm("Y or N?")
                if(bool){
                    alert("已退出")
                }
                else{
                    alert("已取消")
                }
                //当前判断一个变量是否等于一个boolean值时不用判断,直接书写
                // 案例2
                // 控制台输出偶数
                //
                /*var str=prompt("a number")
                // 字符串转化为数字
                var num=str*1
                //判断
                if (num<0 || parseInt(num)!=num) {
                    alert("不要小数和负数")
                } else{
                    if(num%2===0){
                        alert(num)
                    }
                    else{
                        alert("不是偶数")

                }
                }*/

                //案例3 比大小
                var a=prompt("输入一个数")*1
                var b=Math.floor(Math.random()*100)
                if (a>b) {
                    alert("您赢了")
                    alert("usr:"+a+"AI:"+b)
                } else if(a=b){
                    alert("平手")
                    alert("usr:"+a+"AI:"+b)
                }else{
                    alert("输了")
                    alert("usr:"+a+"AI:"+b)
                }

      script----如果不写type,默认就是JavaScript

     
三种输出语句

  
  ◆第一种:
    document.write("输出到文档中");    识别标签。
    document.write("<h1>识别标签</h1>h1>");
    ◇注意点:
            1.document后面必须有.
            2.write后面必须有括号
            3.write后面必须有引号
    ◆第二种:
    alert();弹窗:兼容性不好,比较突然,用户体验不好。
    alert("hello world");---弹窗(功能:提示或者显示值)

    confirm("hello world?")---弹窗可以点击确定或者取消。(功能:用户判断)

    prompt("hello world")----弹窗可以输入内容。(功能:让用户输入内容,后台获取)
    ◆第三种:控制台输出
        console.log("hello world");---控制台输出日志,开发人员用的比较多。
        console.error("报错");---控制台输出错误,系统报错用。
        console.warn("警告");---控制台输出警告,系统警告用。

    ◆以对象类型打印内容
        console.log([]);---以字面表现形式打印。
        console.dir([]);---以对象的形式打印出来。

02.书写位置
    ◆第一种:外链式---工作是常用
        <script type="text/javascript" src="02书写位置.js"></script>
        如果在外链式内部书写内容,里面的内容将不会显示。
    ◆第二种:内嵌式---学习时用
    ◆第三种:行内式---后台较多
        需辅助div.

03.注释方法
    ◆1.单行注释---两个//
    ◆2.ctrl+shift+/-----/*  */
    ◆3.方法注释;---不要求掌握;



变量※
    ◆1.概念:装着内容的符号。
        1'任何变量都用var定义。
        2'后面放一个空格之后,再放一个变量名。
        3'=在编程语言中,是赋值的意思,不是等于的意思
        var aaa = 111;

        变量命名一定注意语义化;
        驼峰命名规则:getElementById---第二个词开始首字母大写。
        遵从规则:
            1'变量命名必须以字母或者下标符号“_”或者“$”为开头。
            2'变量命名长度不能超过255个字符。
            3'变量名中不允许使用空格,首个字不能为数字。
            4'不能使用脚本语言中保留的关键字及保留符号作为变量名。
            5'变量名区分大小写。(javascript是区分大小写的语言)
            6'汉语可以作为变量名。但是不建议使用。
        变量的赋值方式:
            var num1=111;
            直接赋值;
            var num2;
            num2=222;
            先定义后赋值。



数据类型※
  
  ◆1.简单数据类型
        String---字符串
            var str="odin";//结构:英文格式的双引号或单引号,可以放任何值
            console.log(str);//字符串在谷歌当中console.log打印出的是黑色文字。
            console.log(typeof(str));//typeof();检测变量的数据类型、

            //其他字符串
            var str="测试"

            //总结:带有引号的是字符串。不带是变量。

            //+在两个字符串中是链接,不是加法
        Number---数字
            数值类型(number)
            //整数(不分正负)
            //浮点数(不分正负)
            //
            //在谷歌当中console.log打印出的是蓝色文字。
        Boolean---布尔
            在谷歌当中console.log打印出的是紫色文字。
            true false 区分大小写,不带引号
        Undefined---未定义
            在谷歌当中console.log打印出的是灰色文字。

            总结:定义变量不赋值:undefined;不定义:报错
        Null---空
            和undefined类似,复杂类型;
            object类型
    NaN:不是数字    not a number
        判断是否为数字
            isNaN();符合不是数字。


运算符※
   
1.算数运算符(+ - ++ --)
    a)一元运算符:
        正负
        var a=123
        console.log(+a)
        console.log(-a)
        ++、--:自增自减
        用法1:++在前,先自增,后运算
        用法2:++在后,先运算,后自增

    2.逻辑运算符(+ - * / )
        连接两个值时
            a)有一个时字符串就是链接
            b)都是数字则运算
            c)undefined和任何运算结果都是NaN
        % 取余
        三元运算符: 值1? 值2:值3
        和if语句类似
        判断值1的boolean值,如果为true则值2,为false为值3

        逻辑运算符
        丨或运算:有一个为1则1
        短路:一旦前面满足则后面不再运算
        ||则显示true

        & 与运算
        ! 非运算
    3.◆比较运算符
        ==是否相等(忽略类型) ===数据类型也要相等
        都是boolean类型
    4.◆赋值运算符
        = += -+ *= /=
        =    结果是一个逻辑,给某个变量赋值
        += -+ *= /=
        在原有值得基础上,运算后赋值给这个变量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值