• HTML基础之JS


    HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python、Go、Java、C++等,都是一种独立的语言,Python的解释器有Python2.7、Python3.x,浏览器具有解释JavaScript的功能,所以它才是HTML的三把利器之一。

    在HTML中可以将JavaScript/JS的代码写在head中,被script标签所包裹,当浏览器解释HTML时,遇到style标签时,按照CSS规则解释,遇到Script标签时,按照JavaScript的语法规则解释。

     

    引入JavaScript代码,类似于Python的import

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

    注意:引入的js文件,script标签中不要加任何内容

     

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

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

     

    注释

    单行注释通过 //  多行通过 /* */     ;多条语句使用分号分隔

     

    JS变量

     1 es5
     2 name = 'dsx'; // 默认全局变量 
     3 function func() {
     4     var name = 'niulaoshi'; // 局部变量 
     5 }
     6  
     7 es6
     8 // let 定义的变量没有 预解析
     9 alert(num1);
    10 let num1 = 1;
    11 alert(num1);
    12 //    const 也没有变量预解析 const 定义的程序不可以修改 常量
    13 const num2 = 2;
    14 alert(num2);
    15 num2 = 3

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

    字符串

     1 //定义字符串 
     2 var str = '你开心就好!'; 
     3 var name = '大师兄'; 
     4 // 字符串的拼接 
     5 var name_str = name+str;  
     6 //字符串操作 
     7 str = '大师兄' 
     8 str.charAt(0) 根据角标获取字符串中的某一个字符  char字符 
     9 str.substring(1,3) 根据角标获取 字符串子序列 大于等于x  小于y 
    10 str.length 获取字符串长度 
    11 str.concat('牛教授')  拼接字符串 
    12 str.indexOf('大师') 获取子序列的位置 
    13 str.slice(0,1)  切片 start end 
    14 str.toLowerCase()  变更为小写 
    15 str.toUpperCase() 变更大写 
    16 str.split('',1) 切片 返回数组 参数2 为取分割后数组的前x个元素
    17  
    18 数字类型(JavaScript 只有一种数字类型。数字可以带小数点,也可以不带)
    19  
    20 var age = 18;
    21 var score = 89.22; 
    22 number = '18'; 
    23 // 字符串转
    24 var n = parseInt(number); 
    25 // 转换成小数 
    26 f =parseFloat(number)
    27 布尔类型(true 或 false)
    28 var t = true; var f = false;

    数组类型(就是Python的列表)

     1 // 第一种创建方式 var list = new Array(); 
     2 list[0] = '大师兄'; 
     3 list[1] = '牛教授'; 
     4  
     5 // 第二种创建方式 
     6 var list2 = new Array('大师兄','牛教授'); 
     7  
     8 // 第三种创建方式 
     9 var list3 = ['大师兄','牛教授']; 
    10  
    11 数组操作 
    12 var list3 = ['大师兄','牛教授'];
    13  
    14 list3.length 数组的长度 
    15  
    16 list3.push('dsx') 尾部追啊参数 
    17  
    18 list3.shift() 头部获取一个元素 并删除该元素 
    19  
    20 list3.pop() 尾部获取一个元素 并删除该元素 可添加指定索引值进行删除
    21  
    22 list3.unshift('dsx') 头部插入一个数据 
    23  
    24 list3.splice(start, deleteCount, value) 插入、删除或替换数组的元素 
    25  
    26 list3.splice(n,0,val) 指定位置插入元素 
    27  
    28 list3.splice(n,1,val) 指定位置替换元素 
    29  
    30 list3.splice(n,1) 指定位置删除元素 
    31  
    32 list3.slice(1,2) 切片;
    33  
    34 list3.reverse() 反转 
    35  
    36 list3.join('-') 将数组根据分割符拼接成字符串 
    37  
    38 list3.concat(['abc']) 数组与数组拼接 
    39  
    40 list3.sort() 排序

    对象类型(等同于Python的字典)

    1 var dict = {name:'dsx',age:18,sex:'' };
    2 var age = dict.age; 
    3 var name = dict['name'];
    4 delete dict['name'] 删除
    5 delete dict.age 删除
    6 Object.keys(dict) #获取key的列表 ['name','age','sex']
    7 Object.values(dict) #获取values的列表 ['dsx','18','男']

    定时器

    1 setInterval(alert('大师兄'),5000); //参数1 为定时器执行的功能,第二个参数为定时器工作的间隔时间 毫秒为单位
    2  
    3 function t1() {
    4     console.log('我是大师兄')
    5 }

    JS条件判断语句

     1 if (条件) {
     2     执行代码块
     3 } else if (条件) {
     4     执行代码块
     5 } else {
     6     执行代码块
     7 };
     8  
     9 if (1 == 1) {
    10     console.log()
    11 } else if (1 != 1) {
    12     console.log()
    13 } else if (1 === 1) {
    14     console.log()
    15 } else if (1 !== 1) {
    16     console.log()
    17 } else if (1 == 1 && 2 == 2) { //and
    18     console.log()
    19 } else if (1 == 1 || 2 == 2) { //or
    20     console.log()
    21 }
    22  
    23 switch (a) {
    24     case 1:
    25         console.log(111);
    26         break;
    27     case 2:
    28         console.log(222);
    29         break;
    30     default:
    31         console.log(333)
    32 }

    JS循环语句

    //第一种循环
    //循环的是角标
    tmp = ['宝马', '奔驰', '尼桑'];
    tmp = '宝马奔驰尼桑';
    tmp = {'宝马': 'BMW', '奔驰': 'BC'};
    for (var i in tmp) {
        console.log(tmp[i])
    }
    //第二种循环
    //不支持字典的循环
    for (var i = 0; i < 10; i++) {
        console.log(tmp[i])
    }
    //第三种循环
    while (1 == 1) {
        console.log(111)
    }

    函数定义

      1 1、普通函数
      2 function 函数名(形参, 形参, 形参) {
      3     执行代码块
      4 }
      5 函数名(形参, 形参, 形参);
      6  
      7 2、匿名函数 匿名函数没有名字,无法调用时找到,将整个函数当做一个参数传递
      8 setInterval(function () {
      9     console.log(11)
     10 }, 5000);
     11 3、自执行函数创建函数并且自动执行
     12 当引入多个js文件时,函数名可能会出现重复,这时通过自执行函数,保证每一个js文件都会被解析,从而生成独立的容器,防止调用冲突
     13 (function (name) {
     14     console.log(name)
     15 })('dsx');
     16  
     17 作用域
     18 Python的作用域是以函数作为作用域的,其他语言以代码块({})作为作用域的。
     19 JavaScript是以函数作为作用域
     20 function tmp() {
     21     var name = 'dsx';
     22     console.log(name)
     23 }
     24 tmp();
     25 console.log(name);
     26 2、函数作用域在函数未被调用之前,已经创建
     27 var name = 'nhy';
     28 function a() {
     29     var name='dsx';
     30     function b() {
     31         console.log(name);
     32     }
     33     return b
     34 }
     35  
     36 var c = a();
     37 c();
     38 3、函数的作用域存在作用域链(代码不执行时,先生成作用域链)
     39 当函数嵌套函数时,每一个函数为一个作用域,多层就叫做作用域链,查找遵循作用域链规则
     40 function outer() {
     41     name = 'nn';
     42     function inner() {
     43         var name = 'ii'
     44         console.log('in', name)
     45     }
     46  
     47     console.log('out', name);
     48     inner()
     49 }
     50 outer();
     51 函数不调用时,只生成作用域,当调用时遵循作用域链执行,name都为hhh
     52 function outer() {
     53     var name = 'nn';
     54     function inner() {
     55         console.log('in', name)
     56     }
     57  
     58     var name = 'hhh';
     59     console.log('out', name);
     60     inner()
     61 }
     62 outer();
     63 4、函数内,局部变量提前声明 JavaScript的函数在运行前会找到函数内的所有局部变量执行
     64 var xxx;
     65 function func() {
     66     console.log(name);
     67     var name = 'dsx';
     68 }
     69 func();
     70  
     71 ES6
     72 var demo = function (a,b) {
     73     alert(a+b)
     74 };
     75 demo(2,2);
     76 // 箭头函数时es6的写法,多个参数 括号括起来 接一个=> 大括号中的写的和其他函数中相同
     77 var rs = (a,b) =>{
     78     alert(a+b)
     79 };
     80 rs(1,2);
     81 // 单个参数可以省略括号 但是建议写上
     82 var rs2 = (a) =>{
     83     alert('a')
     84 };
     85 rs2();
     86 //    箭头函数可以解决 在vue中写请求时 获取不到当前vue实例data数据的问题
     87  
     88 //ES6 对象简写
     89 let name = 'aa';
     90 let age = 12;
     91 var person = {
     92     name:name,
     93     age:age,
     94     show:function () {
     95         
     96     }
     97 };
     98 person.show();
     99  
    100 let person = {
    101     name,
    102     age,
    103     show(){
    104         alert(this.age)
    105     }
    106 };
    107 person.show()

    面向对象

  • 相关阅读:
    HTML中为何P标签内不可包含块元素?
    js判断鼠标位置是否在某个div中
    拒绝图片延迟加载,爽爽的看美图
    PHP为什么会被认为是草根语言?
    宜信开源微服务任务调度平台(SIA-TASK)
    JSBridge框架解决通信问题实现移动端跨平台开发
    如何运用多阶构建编写优雅的Dockerfile
    Sharding-JDBC 使用入门和基本配置
    程序员笔记|详解Eureka 缓存机制
    程序员笔记|常见的Spring异常分析及处理
  • 原文地址:https://www.cnblogs.com/bugoobird/p/13199867.html
Copyright © 2020-2023  润新知