• JS 基础


    一切实例都参照于  菜鸟教程、表严肃

    • 页面文字改变
    <p id="demo">
        JavaScript 能改变 HTML 元素的内容。
    </p>
    <script>
      document.write(Date()); //直接在html中显示页面刷新时间
      console.log(Date());
        function myFunction()
        {
        x=document.getElementById("demo");  // 找到元素
        y=document.getElementById("dem    //在输出中可能由于内容太长,可以通过  换行,便于阅读
    o2"); x.innerHTML="Hello JavaScript!"; // 改变内容 y.innerHTML=x.innerHTML; } </script> <p id="demo2"> ddddd </p>
    <button type="button" onclick="myFunction()">点击这里</button>

    innerHTML  用于修改元素的 HTML 内容

    灰色位置 内容 都变成 Hello JavaScript!(demo位置是直接改变,demo2位置参照demo的新值)

    • 判断
    <script>
    function changeImage()
    {
        element=document.getElementById('myimage')
        if (element.src.match("bulbon"))
        {
            element.src="/images/pic_bulboff.gif";
        }
        else
        {
            element.src="/images/pic_bulbon.gif";
        }
    }
    </script>
    <img id="myimage" onclick="changeImage()" 
         src="/images/pic_bulboff.gif" width="100" height="180">
    <p>点击灯泡就可以打开或关闭这盏灯</p>

    match() 方法可在字符串内检索指定的值(通过在src属性中检索是否含有bulbon这个值)

    •  变量
    function varTest() {
        var x = 1;
        if (true) {
            var x = 2;       // 同样的变量!
            console.log(x);  // 2
        }
        console.log(x);  // 2
    }
    
    function letTest() {
        let x = 1;
        if (true) {
            let x = 2;       // 不同的变量    
            console.log(x);  // 2  
        }
        console.log(x);  // 1
    }

    let 声明的变量只在其声明的块或子块中可用(let 内外是不一样的)

    • 数据类型
    number
    在其他类型前加+可以快速将其转换为数字类型
    +'1' // 1
    +'' // 0
    +'1.1' // 1.1
    +true // 1
    +false // 0
    string
    `我是个模板字符串,我叫 ${name}` //使用`(反引号,1左边)定义模板字符串,可以传入变量,还可以直接断行
    'yo'.charAt(0); // "y" 程序员是从0开始数的,获得字符串中的某一个字符
    'yo'[0];   // "y"
    '花花你好'.includes('花花'); // true,检查一段字符是否包含另一段字符
    '花花→_→拴蛋→_→背背'.split('→_→'); // ["花花", "拴蛋", "背背"] //用字符串将字符串分割为数组
    'y'.concat('ooo', 'oo', 'o'); // "yoooooo",依次连接传入的字符,传参数量不限 连接字符串
    var str = '王花花和小熊跳舞跳呀跳呀一二一';  //截取字符串
    str.slice(3, 8); // "和小熊跳舞",第一个传参为开始索引,第二个传参为结束索引 
    str.slice(3); // "和小熊跳舞跳呀跳呀一二一",若省略第二个传参将会截取至最后一个字符
    '  yo  '.trim(); // "yo"    .trim 移除两头的空格

     对象

    <p id="demo"></p>
    <script>
    var person = {
        firstName: "John",
        lastName : "Doe",
        id : 5566,
        fullName : function() 
        {
            return this.firstName + " " + this.lastName;
        }
    };
    document.getElementById("demo").innerHTML = person.fullName();
    docuument.write(person.firstName); </script>
    //获取对象属性
    person.firstName
    person['firstName']
    array
    var
    arr = [3, 4, 5]; .push(新元素) 从末尾添加 arr.push(6); // 4 返回修改后的长度 console.log(arr); // [3, 4, 5, 6] .unshift(新元素) 从开头添加 arr.unshift(2); // 4 返回修改后的长度 console.log(arr); // [2, 3, 4, 5] .pop() 从末尾删 arr.pop(); // 6 返回被删除的数 console.log(arr); // [3, 4, 5] .shift() 从开头删 arr.shift(); // 2 返回被删除的数 console.log(arr); // [3, 4, 5] .reverse() 颠倒顺序 [1, 2, 3].reverse(); // [3, 2, 1] .splice(从哪剪, 剪多长, 替换元素1, 替换元素2) 剪接 var 片儿 = ['a', 'b', '辣鸡1', '辣鸡2', 'c']; // 从第3格开始剪,剪2格 片儿.splice(2, 2); // ["辣鸡1", "辣鸡2"] 返回减掉的东西 console.log(片儿); // ["a", "b", "c"] // 注意,现在片儿已经剪成了['a', 'b', 'c'] // 从第2格开始剪,剪1格,进两个广告 片儿.splice(1, 1, '广告1', '广告2'); console.log(片儿); // ["a", "广告1", "广告2", "c"] .slice(从哪剪,在哪停) 剪裁 返回剪裁的新数组,不影响原数组。 var 片儿 = ['a', 'b', '辣鸡1', '辣鸡2', 'c']; // 从第3格开始剪,剪2格 var 垃圾堆 = 片儿.slice(2, 4); // ["辣鸡1", "辣鸡2"] 返回减掉的东西 console.log(垃圾堆); // ["辣鸡1", "辣鸡2"] .forEach(回调函数) 迭代 ['a', 'b', 'c'].forEach(function(string,index) { console.log('第' + index + '条:' + string); }); .filter(回调函数) 过滤器 (通过你给他的条件返回一个新数组) var 旧数组 = [1, 2, 3, 4]; var 新数组 = 旧数组.filter( // 传入一个函数,每迭代一个元素就执行一次 function(元素, 索引, 原始数组) { // 只要大于2的元素 var 条件 = 元素 > 2; return 条件; } ); console.log(新数组); // [3, 4] .every(回调函数) 查看是否满足条件 var 满足 = [1, 2, 3].every( // 传入一个函数,每迭代一个元素就执行一次 function(元素, 索引, 原始数组) { // 是否小于10 var 条件 = 元素 < 10; return 条件; } ); /*只有当所有条件都满足时才返回true*/ console.log(满足); // true
    this 
    一般是指代父类
    但是要看它的引用位置
    
        var person={
            fname:'y',
            lname:'f',
            full:function(){
                console.log(this);  //window    若是在严格模式('use strict';)就是undefined
                return this.lname + this.fname;
            }
        }
        // var get_fullName = person.full;
        // console.log(get_fullName());    //NaN
        console.log(person.full());     //就等于父级对象
        function yo(){
            console.log('yo.');
        }
       
        //可以在不同的父级动态绑定
        function yo(nam,a){
            console.log('yo, '+nam+' 我是'+this.name +' '+a);
        }
        // yo();
        var f ={
            name:'f',
        }
        // f.yo = yo;
        // f.yo();
        yo.call(f,'aa',1); //  call可以绑定this
        yo.apply(f,['b',2])
        yo2 = yo.bind(f);
        yo2('c',3);
    •  回调函数
        function yo(callback){
            if(callback){
                callback();
            }
        }
        yo(function(){
            console.log('222');
        });
    
        function each(arr,callback){
            for(var i =0;i<arr.length;i++){
               var item = arr[i];
               callback(item);
            }
        }
        each(['a','b','c'],eqc);
        function eqc(item){
            if(item=='c')
                console.log(item);
        }
    •  闭包
    function user(name){
        var name,age;
        return {
            getName:function(){
            return name;
            },
            setName:function(NewName){
            name = NewName;
            }
        }
    }
    var ss = new user('sss');
    ss.setName('wwww');
    var name = ss.getName();
    console.log("name:",name); 
    • window对象
        // alert('这是一个弹框');
    
        // var r = confirm('这是一个可以选择是否的弹框,你点的是什么?');
        // console.log("r:",r);    //返回true 或者 false
    
        //var name = prompt('这是一个可供输入的弹框');
        //console.log("name:",name);

    三个弹框都会使程序暂时停止

        //定时操作
        setTimeout(function(){
            console.log("it's 2 sec");
        },2000)
    
        //间隔多久执行一次
        setInterval(function(){
            console.log("ok");
        },1000)
    
        //每秒报数
        var count = 0;
        var timer = setInterval(function(){
            count++;
            if(count>3){
                clearInterval(timer);
                return; //若没有return 外面依然会执行一次
            } 
            console.log("ok"+count);
        },1000)
    console.log因为一直在程序内,所以不管定时器是否0秒执行(计时器在程序外有一个队列)
    都是先打印console的内容
  • 相关阅读:
    Manage It! Part 2 规划和组织项目
    【转载】如何迅速成为Java高手
    Eclipse中最常用的快捷键
    向SQL Server全文索引进军,艰难历程
    数据库函数整理
    ASP.NET MVC简单编程篇(一)
    SQL Server存储过程及高级应用
    定义和赋值的区别 构造函数和拷贝构造函数
    SQL Server 2000
    Coustom web control 自定义控件
  • 原文地址:https://www.cnblogs.com/Nora-F/p/9447963.html
Copyright © 2020-2023  润新知