zoukankan      html  css  js  c++  java
  • javascrip基础课程-1

    ---恢复内容开始---

    HTML 定义了网页的内容
    CSS 描述了网页的布局
    JavaScript 网页的行为

    一种轻量级编程语言

    可以将javascript(先包含在<script></script>)放置在head或者body当中,也可以通过外边引入<script src="url"></script>

    输出可以通过弹窗alert()或者写入文档document.write(); document.innerHTML = 

    注释://单行注释或者/**/多行注释

    utf8当中的实体https://www.runoob.com/charsets/ref-html-utf8.html

    代码块以左花括号开始,以右花括号结束。

    代码块的作用是一并地执行语句序列。

    在 JavaScript 中,用分号来结束语句是可选的。

    代码折行输出

    document.write("你好
    世界!");

    变量名称:

    必须以字母开头或者可以使用$和_ 而且大小写敏感

    经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。

    var test;//实际上此时test为undefined 在C++当中此时test应该为其当前指向空间以前所保留的值

    如果重新声明 JavaScript 变量,该变量的值不会丢失:

    var x;               // x 为 undefined
    var x = 5;           // 现在 x 为数字
    var x = "John";      // 现在 x 为字符串

    在定义对象的时候,里边的属性名可以添加引号业可以不加,但实际上是看成字符串的

    var obj = {
            'username':"webcyh"
        }
        console.log(obj.username);
        console.log(obj['username']);

    Undefined 这个值表示变量不含有值。

    可以通过将变量的值设置为 null 来清空变量。

    创建对象方法

    func:function(){}

    func(){}

    函数返回 返回值是可选的

    局部变量:

    只在函数内部可以访问

    并且生存期在函数执行完就销毁

    全局变量:

    在网页中的任何地方可以访问

    而且至于关闭网页才会销毁

    非严格模式下:

    未生命的变量可以通过delete删除

    没有生命的变量默认属于全局变量window 

    事件

     

     字符串:

    可以跟数组一样使用下标的方式访问

    可以获得长度str.length

    字符串也可以是一个对象

    var x = "John";
    var y = new String("John");
    typeof x // 返回 String
    typeof y // 返回 Object 尽量不要使用字符串对象 ,这样会拖慢执行速度

    字符串方法

     === 完全等于 值和类型

     typeof [1,2]返回object 数组为特殊的对象

    typeof null 返回object 空对象引用

    typeof 一个没有值的变量会返回 undefined

    null 和 undefined 的值相等,但类型不等:

    变量置空使用undefined 对象置空使用null

    typeof "John"                 // 返回 string 
    typeof 3.14                   // 返回 number
    typeof NaN                    // 返回 number
    typeof false                  // 返回 boolean
    typeof [1,2,3,4]              // 返回 object
    typeof {name:'John', age:34}  // 返回 object
    typeof new Date()             // 返回 object
    typeof function () {}         // 返回 function
    typeof myCar                  // 返回 undefined (如果 myCar 没有声明)
    typeof null                   // 返回 object

    constructor 属性返回所有 JavaScript 变量的构造函数。

    使用constructor判断是否为数组myArray.constructor.toString().indexOf("Array") > -1;

    window.String()和Number.toString()都可以转换为字符串

    转换为字符串

        console.log(typeof String(12+2));
        console.log(typeof (12+3).toString());
       console.log(typeof 12);

     Number("12")将字符串转为数字 parseInt parseFloat

    正则表达式的使用

    /正则表达式主体/修饰符(可选)

    正则表达式通常应用在在以下两个方法当中

    search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。var n = str.search("Runoob");

    replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 var txt = str.replace(/microsoft/i,"Runoob");

    上面的函数说明可以使用正则表达式替代上面的字符串参数

    修饰符:i不区分大小写  g全局匹配 返回所有匹配到的字符串 m多行匹配

    正则表达式模式

    括号表达式

    元字符

    量词

    var str = "he2ll|o";
        console.log(typeof str);
        console.log(str.constructor);//创建字符串的构造方法
        console.log(str.charAt(1));
        console.log(typeof String(12+2));
        console.log(typeof (12+3).toString());
        console.log(typeof 12);
        console.log(Boolean(1));
        console.log(str.search(/[ho]/im));//
        console.log(str.search(/(l|o)/im));
        console.log(str.search(/^d/i));//查找数字开头的
        //在这里使用全局搜索还是会返回第一次找到的位置
        /*
        [asn]这里边任何一个字符
        [1-9] 1到9中的任何数字
        (x|y)以分割|分开的字符 类似于在[xy]上找
        元字符
        d查找数字
        s查找空白字符
        匹配单词边界
        uxxxx查找十六进制
        量词
        n+ 匹配至少包含一个
        n*匹配零个或者多个n的字符
        n?匹配零个或者一个n字符

    w 为为字母下划线和数字
    */

    RegExpt对象

    test()方法也是用于匹配某个正则表达式 如果匹配成功返回true

    var patt = /e/;
    patt.test("The best things in life are free!");

    使用exec()

    返回匹配的结果

    例子

    /*是否带有小数*/
    function    isDecimal(strValue )  {  
       var  objRegExp= /^d+.d+$/;
       return  objRegExp.test(strValue);  
    }  
    
    /*校验是否中文名称组成 */
    function ischina(str) {
        var reg=/^[u4E00-u9FA5]{2,4}$/;   /*定义验证表达式*/
        return reg.test(str);     /*进行验证*/
    }
    
    /*校验是否全由8位数字组成 */
    function isStudentNo(str) {
        var reg=/^[0-9]{8}$/;   /*定义验证表达式*/
        return reg.test(str);     /*进行验证*/
    }
    
    /*校验电话码格式 */
    function isTelCode(str) {
        var reg= /^((0d{2,3}-d{7,8})|(1[3584]d{9}))$/;
        return reg.test(str);
    }
    
    /*校验邮件地址是否合法 */
    function IsEmail(str) {
        var reg=/^w+@[a-zA-Z0-9]{2,10}(?:.[a-z]{2,4}){1,3}$/;
        return reg.test(str);
    }

    异常处理

    自定义异常

    //实现匹配一个字符串当中的所有网址
        try{
            if(1){
                throw "出现异常";
            }
        }catch(e){
            console.log("自定义异常"+e);
        }finally{
            console.log("我就是要执行");
        }

    断点

    debugger;

    变量提升

    JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。

    JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

    JavaScript 只有声明的变量会提升,初始化的不会。

    严格模式下不会变量提升

    ""use strict

    var a = 2;
    var b =4;
    var c;
    eval("c=a+b");
    console.log(c);
    View Code

    json 轻量级数据交换语言

    全称:JavaScript Object notation

    写法:

    "sites":[
        {"name":"Runoob", "url":"www.runoob.com"}, 
        {"name":"Google", "url":"www.google.com"},
        {"name":"Taobao", "url":"www.taobao.com"}
    ]

    JSON.parse(text)将其转换为js对象

    JSON.stringify();将字符串转换为json数据

    void 指定要计算一个表达式但没有返回值

    该操作符指定要计算一个表达式但是不返回值

    写法:

    void(func)
    void:func(())
    
    javascript:void(func())
    javascript:void func()

    href="#"和href="javascript:void(0)"的区别

    前者为锚默认为href="#top" 这个是会跳转的

    后者为死链接

    javascript代码规则

    变量名为驼峰命名法className

    全局变量为大写 常量也是大写

    运算符要有空格

    代码tab缩进

    定义对象的时候需要注意换行

    html的后缀名字可以为html 和htm

    函数:

    函数不是执行语句所以不需要加分号

    在JavaScript当中函数可以作为表达式 将函数赋值给一个变量 这样这个 变量可以当中函数来使用 注意这里的函数式匿名函数 而且这个函数式执行表达式 需要使用分号结尾

    自调用的函数表达式

    (function(){

    })()

    函数是一个对象 通过funcName.toString()将函数转换为字符串

    函数参数

    在JavaScript当中 参数默认值为undefined 或者可以如下面写法

     function get(x,y){
             console.log(x);
             x = x||1;
             y = y||2;
             return x+y;
         }//在未传递值得时候 值为undefined 在上面的x = x||1;意思是当x为undefined(false)的时候取后边的值1
         console.log(get());

    在传递的参数为对象的时候变化是双向传递的 也就是里边的修改 在外边也会发生变化

  • 相关阅读:
    Android5.0录屏方案
    Android点阵屏效果的控件
    Android绘制View相关的几个问题
    AndroidStudio导入第三方开源库
    第六百二十三天 how can I坚持
    第六百二十二天 how can I 坚持
    第六百二十一天 how can I 坚持
    第六百二十天 how can I 坚持
    第六百一十九天 how can I 坚持
    第六百一十八天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/webcyh/p/11479263.html
Copyright © 2011-2022 走看看