• js基础1


    一.JS三个组成部分

    1.ES: ECMAScript语法

    2.DOM: document对象模型 => 通过js代码与页面文档(出现在body中的所有可视化标签)进行交互

    3.BOM: borwser对象模型 => 通过js代码与浏览器自带功能进行交互

    二.引入方式

    1.行间式:

    出现在标签中的全局事件属性中
    this代表该标签, 可以访问全局属性, 再访问具体操作对象(eg: this.style.color = "red")

    2.内联式:

    出现在script脚本标签中
    可以通过标签的id唯一标识,在js代码块中操作页面标签
    js采用的是小驼峰命名规范, 属于解释性语言(由上至下依次解释执行)

    3.外联式:

    通过script标签的src属性链接外部js文件, 链接后, script标签本身内部的js代码块将会被屏蔽
    在任何位置都可以使用this对象,当this对象不指向任意一个标签时,代表的是window对象

    4.js具体出现的位置

    head标签的底部: 依赖性js库
    body标签的底部(body与html结束标签的之间): 功能性js脚本

    三.变量的定义

    四种定义变量的方式
    语法: 关键词 变量名 = 变量值

    num=10; 省略关键词,定义的为全局变量,在任何位置定义,在任何位置都可以访问,但不建议使用

    var num=10; var关键词,无块级作用域,定义在块级作用域中的变量,外界无法访问

    let num=10; let关键词,有块级作用域,定义在块级作用域中的变量,外界无法访问

    const num=10; const关键词,有块级作用域,定义在块级作用域中的变量,外界无法访问,且变量的值不能再被二次修改,所以为常量。

    产生块级作用域的方式

    {

      直接书写

    }

    if语句、while语句、for语句可以产生块级作用域。

    函数可以产生就作用域,除了定义在局部作用域中的全局变量(没有关键字的变量),外界可以访问,其他定义方式,外界都不可以访问

     变量命名规范

    可以由哪些组成: 字母, 数字, _, $, 中文(一般不考虑)

    可以以什么开头: 字母, _, $, 中文(一般不考虑)

    不能出现什么: 关键字, 保留字(将来要用的,不给用户使用)

    提倡什么书写规范: 小驼峰, 支持_连接语法

    四.三种弹出框

    普通弹出框:alert

    输入框: 以字符串形式接收用户输入内容:prompt

    确认框: 根据用户选择确认或取消, 得到 true | false 两个布尔结果:confirm

    五.数据类型

    // 值类型
    var a = 10; // Number 10
    var a = 'abc'; // String abc
    var a = true; // Boolean true
    var a = undefined // undefined undefined
    // 引用类型
    var a = function(){} // function f(){}
    var a = {} // Object {}
    var a = null // Null null

    // 其他Object具体体现
    Array | Date | RegExp

    六.值类型的类型转换

    1.通过类型声明转换
    Number() | String() | Boolean()

    // 1. number 与 boolean类型
        // boolean类型的true就是数字1, false就是数字0
        console.log((true + true) * 10 * false)
        // number 中 0, NaN 可以直接当false来使用, 其他的都可以当true来使用
    
        // 2. string,boolean 转换为 number
        var a = '10'; // => 10
        a = '3.14';  // => 3.14
        a = '3.14.15';  // => NaN
        var b = true;
    
        var n1 = Number(a);
        console.log(n1)
        var n2 = Number(b);
        console.log(n2)
    
        a = '3.14.15';  // 3.14
        a = 'a3.14';  // NaN
        console.log(parseFloat(a));
    
        a = '3.94.15';  // 3
        console.log(parseInt(a));
    
        // 体现弱语言类型
        a = '10';
        var res = +a; // number 10
        console.log(typeof(res), res)
    
        // 3.number, string 转换为 boolean
        // 在分支或循环判断中, 系统会将数字与字符串类型自动转换为布尔类型
        // 不在判断中, 如何转换
        console.log(Boolean(""));
        console.log(Boolean(0));
        console.log(Boolean(NaN));
        console.log(Boolean(null));
    
        console.log(Boolean("1"));
        console.log(Boolean(-100));
    
        // 4.number, boolean 转换为 string
        console.log(String(true));
        console.log(String(1));
    
        var a = 123;
        console.log(a.toString());
        console.log(123..toString());
        console.log(3.14.toString());
    
        var c = 123 + "";
        console.log(typeof c, c);
    
        // 用例
        var z1 = 2 + +"5";  // 7
        z1 = 2 + "5"; // "25"
        // z1 = 2 ++"5";  // 语法错误 ++连在一起是 ++语法(了解)
        var z2 = "5" - 2;  // 3
        console.log(z1, z2);
    
        // 补充
        // NaN与NaN不相等
    View Code
  • 相关阅读:
    Linux tail 命令详解
    解决ArrayList的ConcurrentModificationException
    DOS简单实用的批量输出
    sqlite显示查询所消耗时间
    监听短信增删以及短信会话增删
    getContentResolver().query()方法selection参数使用详解(转)
    intellij编译报错:Internal error: com.intellij.psi.tree.IFileElementType cannot be cast to com.intellij.psi.tree.IStubFileElementType
    Android开发中如何改变RadioButton背景图片和文字的相对位置(转)
    php 获取系统时间
    优化android studio编译的apk大小
  • 原文地址:https://www.cnblogs.com/zhanggq/p/10133588.html
Copyright © 2020-2023  润新知