zoukankan      html  css  js  c++  java
  • HTML基础之js

    引入JavaScript代码,类似与python的import

    <script src='public.js' type="text/javascript"></script>

    head中引入js与body中引入js区别

    html代码从上而下解析,如果在head中引入js, 影响页面打开的速度,存在风险,所有通常放在htmlbody的最下方,这样页面内容先展示,最后在加载js。注意:写在最下面也是有底线的,写在body内部的最底下

    注释:

    单行注释通过// 多行注释/* */

    JS变量:

    name='wxl';//默认全局变量
    function func(){
        var name='weilaoshi';//局部变量
    }

    JS基本数据类型(JavaScript声明数据类型通过new)

    字符串

    //定义字符串
    var str='天气真好'var name='今天'//字符串的拼接
    var name_str=name+str;
    //字符串操作
    str='天天开心'
    str.charAt(0) 根据角标获取字符串中的某一个字符  char字符
    str.substring(1,3) 根据角标获取 字符串子序列 大于等于x  小于y
    str.length  获取字符串长度
    str.concat('天天快乐' ) 拼接字符串
    str.indexOf('开心') 获取子序列的位置
    str.slice(0,1) 切片 start end
    str.tolowerCase() 变更为小写
    str.toUpperCase() 变更大写
    str.split('开',1) 切片 返回数组 参数2 为取分割后数组的前x个元素
    
    
    数字类型(JavaScript 只有一种数字类型。数字可以带小数点,也可以不带)
     
    var age = 18;
    var score = 89.22; 
    number = '18'; 
    // 字符串转
    var n = parseInt(number); 
    // 转换成小数 
    f =parseFloat(number)
    布尔类型(truefalsevar t = true; var f = false;

     数组类型:

    //第一种创建方式 
    var list=new Array();
    list[0]='好天气'
    list[1]='每一天'
    //第二种创建方式
    var list2=new Array('好天气','每一天');
    //第三种创建方式
    var list3=['好天气','每一天'];
    
    数组操作
    var list3=['好天气','每一天'];
    
    list3.length 数组的长度
    
    list3.push('htq') 尾部追加参数
    
    list3.shift() 头部获取一个元素 并删除该元素
    
    list3.pop() 尾部获取一个元素 并删除该元素
    
    list3.unshift('htq') 头部插入一个数据
    
    list3.splice(start,deleteCount,value)  插入 删除或替换数组的元素
    
    list3.splice(n,0,val) 指定位置插入元素
    
    list3.splice(n,1,val) 指定位置替换元素
    
    list3.splice(n,1) 指定位置删除元素
    
    list3.slice(1,2) 切片
    
    list3.reverse()反转
    
    list3.join('-') 将数组根据分割符拼接成字符串
    
    list3.concat(['abc']) 数组与数组拼接
    
    list3.sort() 排序

    对象类型:

    var dict={name:'htq',age:18,sex:'男'};
    var age=dict.age;
    var name=dict['name'];
    delete dict['name'] 删除
    delete dict.age 删除

    JS条件判断语句:

    if(条件){
        执行代码块
    }else if(条件){
        执行代码块
    }else{
        执行代码块
    };
    
    if (1==1){
        console.log('1111')
    }else{
        console.log('222')
    }
    
    if (1 == 1) {
        console.log('1111')
    } else if (2 == 2) {
        console.log('2222')
    }
    else {
        console.log('最后')
    }
    
    if (1 == 2) {
        console.log('1111')
    } else if (2 == 2) {
        console.log('2222')
    }
    else {
        console.log('最后')
    }
    
    if (1 === '1') {
        console.log('1111')
    } else if (2 == 2) {
        console.log('2222')
    }
    else {
        console.log('最后')
    }
    
    
    swith(1){
        case 1:
            console.log(1111)
            break;
         default:
             console.log('2222')
    }

    JS循环语句:

    tmp=['宝马','奔驰','尼桑']
    for (var num in tmp){
        console.log(num)
        console.log(tmp[num])
    }
    
    tmp={'宝马':'BMW','奔驰':'BC'}
    for (var num in tmp){
        console.log(tmp[num])
    }
    
    tmp='宝马奔驰尼桑';
    for (var char in tmp){
        console.log(tmp[char])
    }
    
    tmp=['宝马','奔驰','尼桑'];
    for (var i=0;i<tmp.length;i++){
        console.log(i)
        console.log(tmp[i])
    }
    
    while (1==1){
        console.log(1111)
    }

    函数定义:

    1、普通函数
    function 函数名(形参, 形参, 形参) {
        执行代码块
    }
    函数名(形参, 形参, 形参);
     
    2、匿名函数 匿名函数没有名字,无法调用时找到,将整个函数当做一个参数传递
    setInterval(function () {
        console.log(11)
    }, 5000);
    3、自执行函数创建函数并且自动执行
    当引入多个js文件时,函数名可能会出现重复,这时通过自执行函数,保证每一个js文件都会被解析,从而生成独立的容器,防止调用冲突
    (function (name) {
        console.log(name)
    })('dsx');
     
    作用域
    Python的作用域是以函数作为作用域的,其他语言以代码块({})作为作用域的。
    JavaScript是以函数作为作用域
    function tmp() {
        var name = 'dsx';
        console.log(name)
    }
    tmp();
    console.log(name);
    2、函数作用域在函数未被调用之前,已经创建
    var name = 'nhy';
    function a() {
        var name='dsx';
        function b() {
            console.log(name);
        }
        return b
    }
     
    var c = a();
    c();
    3、函数的作用域存在作用域链(代码不执行时,先生成作用域链)
    当函数嵌套函数时,每一个函数为一个作用域,多层就叫做作用域链,查找遵循作用域链规则
    function outer() {
        name = 'nn';
        function inner() {
            var name = 'ii'
            console.log('in', name)
        }
     
        console.log('out', name);
        inner()
    }
    outer();
    函数不调用时,只生成作用域,当调用时遵循作用域链执行,name都为hhh
    function outer() {
        var name = 'nn';
        function inner() {
            console.log('in', name)
        }
     
        var name = 'hhh';
        console.log('out', name);
        inner()
    }
    outer();
    4、函数内,局部变量提前声明 JavaScript的函数在运行前会找到函数内的所有局部变量执行
    var xxx;
    function func() {
        console.log(name);
        var name = 'dsx';
    }
    func();

    面向对象:

    // 在JavaScript中,方法和类写法类似,区别方式为是否有this,如果有就可以当做是类来用 
    // JavaScript的类默认就拥有了Python的构造函数__init__
    function Foo(name) {
        this.name = name;
    }
    // 创建对象时JavaScript需要用到new关键字来创建对象 
    var obj = new Foo('dsx');
    console.log(obj.name);
     
    // 类中定义方法,虽然可以用,但是在多个实例时存在重复实例方法,浪费资源
    // 创建对象时,say每次创建对象,都会创意一个say的方法。 
    function Foo1(name) {
        this.name = name;
        this.say = function () {
            console.log(this.name)
        }
    }
    var obj1 = new Foo1('dsx_obj1');
    obj1.say();
    // 完善类的定义 
    function Foo2(name) {
        this.name = name
    }
    // 类的原型,将共用的的方法抽出来,当在实例化后,只创建了一个叫做Foo2的对象,对象内只有name,在调用方法时去现在Foo中找,没有找到,会在去原型中找
    是否有该方法。有执行,没有就报错 
    Foo2.prototype = {
        say: function () {
            console.log(this.name)
        }
    };
    var obj2 = new Foo2('dsx_obj2');
    obj2.say();
  • 相关阅读:
    HookLogger的使用
    文件创建与读写练习
    存储流练习2
    闭包
    Console命令详解,让调试js代码变得更简单
    清除浮动的3种方法
    js继承的几种实现方法
    题一
    题二
    十个修复IE6下bug技巧
  • 原文地址:https://www.cnblogs.com/wxcx/p/8887449.html
Copyright © 2011-2022 走看看