快速版-JS基础01书写位置

1.书写位置

2.标识符

3.变量

var:声明变量。

(1).变量的重新赋值

(2).变量的提升

打印结果:console.log(变量名)

第一个是你写在里面的。

第二个是实际运行的先后之分,变量名字在最前面。变量提升。

最后打印出来的结果

4.js引入到文件。

(1)嵌入到html

(2)引入本地独立的js文件 

(3)引入网络来源文件

5.注释与输出方式

注释

//和/* */

输出

alert:输出弹出框。

 <script>

    alert("我是懒羊羊")

  </script>

<script>

    document.write("我是输出到页面")

  </script>

console.log:输出在控制台。

6.数据类型

null、字符串、undefined、数值、boolean、对象

(1)原始数据类型:boolean、字符串、数值。

所有被双引号或者单引号包裹的都是字符串。

注意:下方单引号和双引号使用。

2.合成数据类型

null和undefined代表空值。

7.typeof运算符

控制台看运行结果。

8.算数运算符

++在后面先打印出来在自增。

9.赋值运算符

10.比较运算符

==:比较数值相等。

===:比较数值和类型相等。

11.boolean运算符

(2)&&且运算

都要

(3)||或运算

一个也行

12.条件语句-if语句

得出结果:x=2

(2)if  else

(3)条件语句之switch

如果不加break,他会把符合那个值得结果以及下面的都打印出来。

13.三元运算符

14.for循环

表达式可以省略,但是;不可以省略。

15.while循环

  var  i = 0;
        while(i <= 100){
          console.log(i);
          i++
        }

 var sum = 0;
          var i = 0;
          while(i <= 100){
            sum += i ;
            i++
          }
          console.log(sum);

16.break语句和continue语句

所以当前就不打印5,就打印6...了。

 17.字符串

只能单双嵌套或者双单嵌套。不能双双嵌套或者单单嵌套。

 var str4 = "懒羊羊当'好的'大厨"
          document.write(str4)

(2)如果非要单单或者双双使用。

 var str4 = "懒羊羊当\"好的\"大厨"

          document.write(str4)

(3)字符串非要换行呢?

18.字符串方法charAt():返回指定字符

19.字符串方法concat():拼接字符

concat:合并多个数组; 合并多个字符串

多个参数,逗号隔开。

 var i = "hello";
          var a = "world";
          var d = "!"
          var num = 100;
          var s = i.concat(a,d,num);
          console.log(s);

(2)简便方法:直接用+

但是他不会改变数值类型,如果是数字相加就是普通加法,若果是字符串相加就是拼接在一起

20.substring:取出子链

substring:子链。

包头不包尾。

21.substr():取出字串

22.indexOf():出现的位置

23.trim()去除两旁空格、制表符等

不能去除中间的空格。

24.split:分割字符

26.数组

(2多维数组)

(3)下标读取

有括号叫方法,没有括号叫属性。

(4)数组越界,返回undefined

27.数组遍历

(1)遍历数组三种方法:for 、while

   var username = ["amy" , "frank" , "ime" , "bob"];
    for(var i =0; i < 4 ; i++){
      console.log(username[i]);
    }
    console.log(username.length)
    // 改良
    for(var i =0; i < username.length ; i++){
      console.log(username[i]);
    }
    //while
    var i = 0;
    while(i < username.length){
      console.log(username[i]);
      i++;
    }

(2)for in

不用定义var i= 0;

28.数组静态方法Array.isArray()判断是否为数组

判断是否为数组。

30.数组方法push()和pop():添加删除数组,会改变原数组。

(2)push方法:可同时添加多条数据。

(3)pop:删除最后一个。

      var username = ["amy" , "frank" , "ime" , "bob"];
      username.pop()
      console.log(username);

31.数组方法shift()和unshift()。

可以打印出删除后的结果和删除的东西。

(2)shift可以遍历和清空数组。

这个打印出结果是undefined。

(3)unshift()

      var username = ["amy" , "frank" , "ime" , "bob"];
      username.unshift("xhh" , "htl");
      console.log(username);

32.数组方法join():把数组变成字符串。

(1)常见分割

(2)如果是null或者undefined

(3)join和split可以实现数组和字符串的互换。

33.数组方法concat。--合并数组。 

(1)+和concat的区别

      var username = ["amy" , "frank" , "ime" , "bob"];
      var i = ["123" , "ABC"];
      console.log(i + username);//用+打印出来是数组
      console.log(username.concat(i));//这才是拼接

不仅可以合并一个,可以合并多个。

(2)可以合并其他参数

eg:

         var i = ["123" , "ABC"];

    console.log(i.concat(20 ,30));

结果:

34.数组方法reverse():反转。


      // var username = ["amy" , "frank" , "ime" , "bob"];
      // console.log(username.reverse());
      // console.log()

(2)字符串反转

先分割字符spilt成数组,在反转数组revers,在join他成字符串。

      var i = "helloworld";
      var o = i.split("");
      o.reverse();
      console.log(o.join(""));

35.数组方法indexOf

返回第一次出现的位置,就算数组中有很多个,返回结果是第一次出现的位置

      var username = ["amy" , "frank" , "ime" , "bob"];
      console.log(username.indexOf("ime"));
      console.log(username.indexOf("30"));

(2)从指定位置后开始搜索:搜索的东西,指定的位置。

      var username = ["amy" , "frank" , "ime" , "bob" ,"amy"];
        console.log(username.indexOf("amy" , 2));

36.函数

定义:可反复调用代码块。

(1)函数声明

        function add(){
          console.log("结果");
        }
        // 调用函数
        add();

(2)函数名的提升

可以先调用,后创建

(3)函数参数


        function add( x , y ){
          console.log( x + y);
        }
        add(5,5);
        add(2,8);

(4)函数返回值

return后面的代码无效。


        function  add(x , y){
          return x + y
        }
        var i = add(2,8);
        console.log(i);

37.对象:object

数字13也要加‘’


        var i = {
          age:'13',
          name:'xhh'
        };

(2)在里面可调用方法、数组等。

调用数组时变量名+function


        var i = {
          age:'13',
          name:'xhh',
          arry:["xhh" , "htl" ,"lyy"],
          flag:true,
          getname:function(){
            console.log("iwen");
          }
        }

(3)对象的调用:对象名.属性

        var i = {
          age:'13',
          name:'xhh',
          arry:["xhh" , "htl" ,"lyy"],
          flag:true,
          getname:function(){
            console.log("iwen");
          }
        }

        console.log(i.age);
        // 方法的调用不同于以上
        i.getname();

(4)链式调用

        var i = {
          o:{
            p:[10 ,20],
            a:[30 , 40]
            }
          };
       console.log(i.o.p); 

38.Math对象

(1)Math.abs()          绝对值的英文是 "absolute value"。

      var i =-100 ;
      console.log(Math.abs(i));

(2)Math.max()  \   Math.min()

      console.log(Math.max(10 ,29));

(3)Math.floor()  \   Math.ceil()

      console.log(Math.floor(10.29));
      console.log(Math.ceil(11.5));

(4)Math.random()

console.log(Math.random());

(5)生成一个10-20的随机数

      function i(min ,max){
        var re = Math.random() * (max - min) + min ;
        re = Math.floor(re);
        console.log(re);
      }
      i(10,20);

38.DATE对象

(1)Date.now()

      console.log(Date.now());//1716623007895
      console.log(Date(1716623007895));
      // 或者直接new进去,获取一个最新的。第二种方法
      console.log( new Date);

\

月份要加一

      // 月份从0-11.0是一月,11:是12月。所以要在后面加一
      console.log(new Date(1716623007895).getMoth() + 1);

打印结果:2024-5-25

      var year = new Date(1716623007895).getFullYear();

      var moth = new Date(1716623007895).getMonth() + 1;

      var day = new Date(1716623007895).getDate();

      console.log(year +"-" + moth + "-" + day);

更准确的一点

39.DOM

(1)节点

(2)节点类型

(3)节点数

(4)document

代码:

结果:

(5)三层节点关系

(6)Node.nodeType属性

40.document对象 --方法/获取元素

(1)document.getElementsByTagName()

类似数组

<body>
  
  <div>hello</div>
  <div>world</div>



    <script>
      var divs = document.getElementsByTagName("div");
      console.log(divs);
      console.log(divs[0]);
      console.log(divs[1]);

    </script>


</body>

(2)document.getElementsByClassName()

例子二:

(3)document.getElementsByName()

(4)document.getElementById()

只读一个,不是一群

(5)H5之后的新的:document.querySelector()

跟id差不多,只返回第一个

注意,打印nav时候前面有.

    <div class="nav">1</div>
    <div class="nav2">2</div>

    <script>
      var nav = document.querySelector(".nav");
      var nav2 = document.querySelector(".nav2");
      console.log(nav);
      console.log(nav2);

    </script>

(6)获取多个

41.document--创建元素

(1)document.createElement()

    <script>

      var text = document.createElement("p");
      console.log(text);
    </script>

(2)document.createTextNode()

    <div class="nav">111</div>
    <script>

      var text = document.createElement("p");
      var content = document.createTextNode("我是威威");
      console.log(text);
      console.log(content);
    </script>



(3)将文本放入标签中text.appendChild(content);

    <div class="nav">111</div>
    <script>

      var text = document.createElement("p");
      var content = document.createTextNode("我是威威");
      console.log(text);
      console.log(content);
      text.appendChild(content);
      console.log(text);
    </script>
    

(4)document.createAttribute()

只有属性才是添加才是:setAttributeNode。其他都是appendChild

     <script>
      
      var id = document.createAttribute("id");
      //赋值
      id.value = "root";
      console.log(id);
     </script>

    <div id="container"></div>
    <script>

      var text = document.createElement("p");
      var content = document.createTextNode("我是威威");
      //创建属性
      var id = document.createAttribute("id");
      //赋值
      id.value = "root";

      //将文本塞进标签:将子元素放进容器里面
      text.appendChild(content);

      // 将属性放进标签
      text.setAttributeNode(id);
      console.log(text);

      // 将这些放进页面里面
      var container = document.getElementById("container");
      // console.log(container);
      container.appendChild(text);
    </script>

42.Element对象_属性

(1)Element.id

    <div class="box"  id ="root">hello</div>

    <script>
      var root = document.getElementById("root");
      // console.log(root.id);//root
      root.id = "roots";//将root变为roots

    </script>

(2)Element.className

(3)Element.classList

<div class="box"  id ="root">hello</div>

   <script>
    var root = document.getElementById("root");
    console.log(root.classList.add("mybox")); 
    root.classList.remove("box");
    if(root.classList.contains("box")){
      console.log("you");
    }else{
      console.log("meiyou");
    }


   </script>

(4).Element.innerHTML

<div class="box"  id ="root">hello</div>

   <script>
    var root = document.getElementById("root");

    console.log(root.innerHTML);//读取
    console.log(root.innerHTML = "大家好全啊");//改写内容


   </script>

43.Element获取元素位置

(1)Element.clientHeight  ,    Element.clientWidth

  <title>Document</title>
  <style>
    .box{
      width: 200px;
      height: 200px;
      border: 5px  solid red;
      padding: 10px;
      margin: 20px;
      background: green;
    }
  </style>
</head>
<body>
  <div class="box" id="box"></div>

  <script>
    var box = document.getElementById("box");
    console.log(box.clientWidth);
    console.log(box.clientHeight);
  </script>

(2)Element.scrollHeight  ,    Element.scrollWidth

(3)Element.scrollLeft , Element.scrollTop

(3)Element.offsetHeight    Element.offsetWidth

(4)Element.offsetLeft    , Element.offsetTop

44.CSS操作

(1)setAttribute

   <div class="box" id="box"></div>

   <script>

    var box = document.getElementById("box")
    box.setAttribute("style","width:200px ; height:200px; background:red;" )
   </script>

(2)style属性

   <div class="box" id="box"></div>

   <script>

    var box = document.getElementById("box")
    // box.setAttribute("style","width:200px ; height:200px; background:red;" )
   box.style.width = "300px";
   box.style.height ="300px";
   box.style.backgroundColor ="red";
   
   
   
   </script>

(3)cssText属性

   <div class="box" id="box"></div>

   <script>

    var box = document.getElementById("box")
    // box.setAttribute("style","width:200px ; height:200px; background:red;" )
  //  box.style.width = "300px";
  //  box.style.height ="300px";
  //  box.style.backgroundColor ="red";
  box.style.cssText = "width:200px ; height:200px; background:red;"
   
   
   
   </script>

45.事件处理程序

(1)HTML事件处理

  <button  onclick="clickHandle()">按钮</button>

  <script>
    function clickHandle(){
      console.log("点击了按钮");
    }

  </script>

(2)DOM0级事件处理

  <button id="btn">按钮</button>
  <script>
    var btn = document.getElementById("btn");
    btn.onclick = function(){
      console.log("点击了吧");
    }

(3)DOM2级事件处理

  <button id="btn">按钮</button>
  <script>
    var btn = document.getElementById("btn");
    btn.addEventListener("click",function(){
      console.log("点击了");
    })

46.事件类型之鼠标事件

前面要加on

    <button   id="btn1">单击</button>
    <button   id="btn2">双击</button>
    <button   id="btn3">鼠标按下</button>
    <button   id="btn4">鼠标抬起</button>


     <script>
      var btn1 = document.getElementById("btn1");
      var btn2 = document.getElementById("btn2");
      var btn3 = document.getElementById("btn3");
      var btn4 = document.getElementById("btn4");

      btn1.onclick = function(){
        console.log("单击事件");
      }
      btn2.ondbclick = function(){
        console.log("双击事件");
      }
      
      btn3.onmouseup= function(){
        console.log("鼠标抬起");
      }
      btn4.onmousedown= function(){
        console.log("鼠标按下");
      }


     </script>
  <style>
    .box{
      width: 200px;
      height: 200px;
      background-color: red;
    }
  </style>
</head>
<body>
  <div class="box" id="btn4"></div>

  <script>

    var btn4 = document.getElementById("btn4")
    btn4.onmousemove = function(){
      console.log("内部移动");
    }
  </script>

47.Event事件对象

<button id="btn">按钮</button>

  <script>
    var btn = document.getElementById("btn");
    //Even事件对象,其实就是参数
    btn.onclick = function(event){
      console.log(event);
    }

  </script>

(1)Event.target:点什么就返回什么

<button id="btn">按钮</button>

  <script>
    var btn = document.getElementById("btn");
    //Even事件对象,其实就是参数
    btn.onclick = function(event){
      // console.log();
      event.target.innerHTML = "点击之后"//点击  按钮  变成  点击之后
    }

  </script>

(2)Event.type

<body>
<button id="btn">按钮</button>

  <script>
    var btn = document.getElementById("btn");
    //Even事件对象,其实就是参数
    btn.onclick = function(event){
      console.log(event.type);//click    看添加的是什么事件
     
    }

  </script>

(3) 阻止浏览器跳转preventDefault();

    <a href="https://itbaizhan.com" id="it">itbaizhan</a>

    <script>

      var it = document.getElementById("it");
      it.onclick = function(e){
        e.preventDefault();
        console.log("dianji ");
      }
    </script>

(4)stopPropagation();

  <style>
    .root{
      width: 200px;
      height: 200px;
      background-color: #999;
    }
    .box{
      width: 100px;
      height: 100px;
      background-color: red;
    }
  </style>
</head>
<body>
  <div class="root" id="root">
    <div class="box" id="box"></div>
  </div>

  <script>
    var root = document.getElementById("root");
    var box = document.getElementById("box");

    root.onclick = function(){
      console.log("root");
    }
    box.onclick = function(e){
      e.stopPropagation();
      console.log("box");
    }


  </script>

点击红色的盒子不加e 会显示root和box,但加了e只会显示box

48.键盘事件

49.表单事件

(1)input事件

    <input type="text" id="username">

    <script>
var username = document.getElementById("username");
username.oninput = function(e){
  console.log(e.target.value);
}

    </script>

(2)select事件

(3)change事件:不会连续触发,统一完成之后才会触发

(4)reset事件和submit事件

50.事件代理

51. 定时器setTimeout

  <script>

    setTimeout(function(){
      console.log("三秒之后打印");
    },3000)
  </script>

以下是举例说明

如果想要只想局部,将 var that = this

(2)取消定时器

  <script>

    var TIMER =  setTimeout(function(){
      console.log("三秒之后打印");
    },3000)
    clearTimeout(TIMER)
  </script>

52.定时器setlnterval()

    <script>
// 每间隔一秒打印一回
      var i = 0;
      setInterval(function(){
        i++
        console.log(i);
      },1000)
    </script>

53.防抖(debounce)

54.节流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/654346.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

牛客NC392 参加会议的最大数目【中等 贪心+小顶堆 Java/Go/PHP 力扣1353】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/4d3151698e33454f98bce1284e553651 https://leetcode.cn/problems/maximum-number-of-events-that-can-be-attended/description/ 思路 贪心优先级队列Java代码 import java.util.*;public class Solution {/**…

《MySQL怎样运行的》—InnoDB数据页结构

在上一篇文章中我们讲了&#xff0c;InnoDB的数据页是InnoDB管理存储空间的基本单位&#xff0c;一个页的大小基本为16kb 那你有没有疑问&#xff0c;就是说这个InnoDB的数据页的结构是什么样的&#xff0c;还有他这些结构分别有那些功能~接下来我们一一讲解 数据页的总览结构…

GPT-4o和GPT-4有什么区别?我们还需要付费开通GPT-4?

GPT-4o 是 OpenAI 最新推出的大模型&#xff0c;有它的独特之处。那么GPT-4o 与 GPT-4 之间的主要区别具体有哪些呢&#xff1f;今天我们就来聊聊这个问题。 目前来看&#xff0c;主要是下面几个差异。 响应速度 GPT-4o 的一个显著优势是其处理速度。它能够更快地回应用户的查…

java中的Collections类+可变参数

一、概述 Collections类是集合类的工具类&#xff0c;与数组的工具类Arrays类似 二、可变参数(变&#xff1a;数量) 格式&#xff1a;参数类型名...参数&#xff0c;可变参数就是一个数组 注意&#xff1a;可变参数必须放在参数列表的最后并且一个参数列表只能有一个可变参…

Golang | Leetcode Golang题解之第101题对称二叉树

题目&#xff1a; 题解&#xff1a; func isSymmetric(root *TreeNode) bool {u, v : root, rootq : []*TreeNode{}q append(q, u)q append(q, v)for len(q) > 0 {u, v q[0], q[1]q q[2:]if u nil && v nil {continue}if u nil || v nil {return false}if …

conda 环境找不到 libnsl.so.1

安装prokka后运行报错 perl: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory 通过conda list 可以看到 有libsnl 2.00版本&#xff0c;通过修改软链接方式进行欺骗

Vue3项目练习详细步骤(第一部分:项目构建,登录注册页面)

项目环境准备 工程创建 安装依赖 项目调整 注册功能 页面结构 接口文档 数据绑定和校验 数据接口调用 解决跨域问题 登录功能 接口文档 数据绑定和校验 数据接口调用 优化登录/注册成功提示框 项目演示 项目的后端接口参考&#xff1a;https://blog.csdn.net/daf…

selenium 学习笔记(一)

pip的安装 新建一个txt curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 把上面的代码复制进去后&#xff0c;把后缀名改为.bat然后双击运行 当前目录会出现一个这个文件 然后在命令行pyhon get-pip.py等它下好就可以了selenium安装 需要安装到工程目…

第15章-超声波避障功能 HC-SR04超声波测距模块详解STM32超声波测距

这个是全网最详细的STM32项目教学视频。 第一篇在这里: 视频在这里 STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随 15.1-超声波测距 完成超声波测距功能、测量数据显示在OLED屏幕上 硬件介绍 使用&#…

react 保持组件纯粹

部分 JavaScript 函数是 纯粹 的&#xff0c;这类函数通常被称为纯函数。纯函数仅执行计算操作&#xff0c;不做其他操作。你可以通过将组件按纯函数严格编写&#xff0c;以避免一些随着代码库的增长而出现的、令人困扰的 bug 以及不可预测的行为。但为了获得这些好处&#xff…

【问题解决】huggingface 离线模型下载

问题 因业务需要在本机测试embedding分词模型&#xff0c;使用 huggingface上的transformers 加载模型时&#xff0c;因为网络无法访问&#xff0c;不能从 huggingface 平台下载模型并加载出现如下错误。 下面提供几种模型下载办法 解决 有三种方式下载模型&#xff0c;一种是通…

《书生·浦语大模型实战营》第1课 学习笔记:书生·浦语大模型全链路开源体系

文章大纲 1. 简介与背景智能聊天机器人与大语言模型目前的开源智能聊天机器人与云上运行模式 2. InternLM2 大模型 简介3. 视频笔记&#xff1a;书生浦语大模型全链路开源体系内容要点从模型到应用典型流程全链路开源体系 4. 论文笔记:InternLM2 Technical Report简介软硬件基础…

苹果手机数据不慎删除?这4个方法果粉必看!

苹果手机该怎么恢复丢失的数据呢&#xff1f;有时候会因为使用不当或者是被他人误删等原因&#xff0c;导致重要的数据丢失&#xff0c;这时我们需要找回丢失手机数据&#xff0c;小编给大家分享4种恢复苹果手机数据的技巧&#xff0c;大家赶紧来学一学吧&#xff01; 一、iclo…

618有哪些值得买的好物?这几款好物通宵整理吐血推荐!

随着618购物节越来越近&#xff0c;很多买家终于等到了用好价钱买好东西的好机会。不管是你一直想要的家居电器&#xff0c;还是最新的数码产品&#xff0c;平时挺贵的东西在618期间会便宜不少。不过&#xff0c;这么多东西可选&#xff0c;促销活动也多得让人看花了眼&#xf…

SAM遥感图像处理开源新SOTA!在GPU上实现40倍加速,不损准确性

在遥感图像处理领域&#xff0c;通过SAM捕捉复杂图像特征和细微差异&#xff0c;可以实现高精度的图像分割&#xff0c;提升遥感数据的处理效率。这种高度的准确性让SAM遥感展现出了比传统方法更优越的性能。 不仅如此&#xff0c;这种策略灵活普适的特性还能拓展遥感技术的应…

Python | Leetcode Python题解之第102题二叉树的层序遍历

题目&#xff1a; 题解&#xff1a; class Solution:def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root: return []res, queue [], collections.deque()queue.append(root)while queue:tmp []for _ in range(len(queue)):node queue.popl…

Unity3D让BoxCollider根据子物体生成自适应大小

系列文章目录 unity工具 文章目录 系列文章目录unity工具 &#x1f449;前言&#x1f449;一、编辑器添加&#x1f449;二、代码动态添加的方法(第一种)&#x1f449;三、代码动态添加的方法(第二种)&#x1f449;四、重新设置模型的中心点&#x1f449;壁纸分享&#x1f449;…

分布式事务解决方案(最终一致性【可靠消息解决方案】)

可靠消息最终一致性解决方案 可靠消息最终一致性分布式事务解决方案指的是事务的发起方执行完本地事务之后&#xff0c;发出一条消息&#xff0c;事务的参与方&#xff0c;也就是消息的消费者一定能够接收到这条消息并且处理完成&#xff0c;这个方案强调的是只要事务发起方将消…

03 FreeRTOS 同步互斥与通信

1、同步与互斥 一句话理解同步与互斥&#xff1a;我等你用完厕所&#xff0c;我再用厕所。 什么叫同步&#xff1f;就是&#xff1a;哎哎哎&#xff0c;我正在用厕所&#xff0c;你等会。 什么叫互斥&#xff1f;就是&#xff1a;哎哎哎&#xff0c;我正在用厕所&#xff0c;你…

太阳能语音监控杆(球机LED款)有什么用

传统监控设备依赖电力支持&#xff0c;在偏远地区和没有网络地区难以发挥其作用&#xff0c;而鼎跃安全的太阳能语音监控杆&#xff08;球机LED款&#xff09;在传统监控基础上&#xff0c;进行了全面优化&#xff0c;解决了无电无网区域使用受限的问题。 太阳能语音监控杆&am…