Skip to content

Js学习

js学习

1.概念

js一种直译型脚本语言,一种动态语言、弱类型语言、支持内置类型。它的解释器被称为javascript引擎。它浏览器的一部分。用于客户端的脚本语言,最早是html网页上使用用来给HTML增加动态效果。
1995年,网景首次设计实现的 。因为网景跟sun合作的,因此才起名叫javascript,它除了语法风格跟java有点接近,其他跟java没有任何关系,目前js版权属于oracle公司。

2.作用

    1、嵌入文本到我们的HTML页面上
    2、对浏览器事件作出响应
    3、读写HTML
    4、在数据提交到服务器之前先做数据验证
    5、检测访客的浏览信息
    6、控制cookie
    7、基于nodeJs技术进行服务端的编程

3.语法

js可以有几种写法:
1、写在script标签内
<script type="text/javascript" >
var core=123;
document.write(core);
</script>
2、写在外部js文件里面
<script type="text/javascript" src="b.js">
</script>
vim b.js
var core=123;
document.write(core);
3.建议html、css、js分别写在不同的文件中,在html直接引入即可。

js数据类型

js基本的数据类型 :数字类型,字符串型,布尔型,undefined,null,对象类型 数组;在使用时直接 var 变量名 =值
1、数字类型(Number)
    只有一种数字类型,数字 可以是小数 ,也可以是整数
    var core =123;
    document.write(core);//打印core

2、字符串型(string)
    字符串是存储字符的变量,用来表示文本的数据类型,程序中的字符串是包含单引号/双引号的,由单引号来界定我双引号中包含的字符串;
    var core ="123";
    document.write(core);//打印core

3、布尔类型(boolean)
    一般是用在流程控制语句中,字符串和数字类型都是无穷多个,然而我们的布尔数据类型只有两个:true 和 false,这两个个值一般用于说明某个事物是真或者假,js一般用布尔类型来比较所得到的结果;
    var core =(1<3);
    document.write(core);//打印core

4、null(空)
    null
    关键字null是一个特殊的值,它表示变量为空值,用来定义空的或者是不存在的引用。
    如果试图去引用一个没有定义的值,就会返回一个null。
    这里注意一点:null并不等于"" 或者0
    var exp=null;
    if(exp==null){
        alert("is null");
}
5、undefined(未定义)
    这个值表示变量不含有值,没有定义的值,或者被定义了一个不存在的属性值
    var core;
    document.write(core);//打印core
    !null和undefined区别:
    null它表示一个变量被赋予一个空值,而undefined是表示变量还没有被赋值

运算符

用于执行程序代码运算,会针对一个以上操作数来进行    
    1、算术运算符
    +   -   *   /   %  ++  --       
    字符串拼接使用“+”
    var core = "ab"+"c";
    2、比较运算符 
    < > == != <= >= === 全等于:将数值以及数据类型一并比较
    !==不全等于:将数值以及数据类型一并比较
    3、赋值运算符
    =   += -= *= /= %=
    a=a+2;==>a+=2
    a=a-2;==>a-=2
    a=a*2;==>a*=2
    a=a/2;==>a/=2
    a=a%2;==>a%=2   

    4、逻辑运算符
     &&  全真为真
    ||  一个为真就是真
    !  取反

    5、三元运算符(三目运算符)
    表达式1?表达式2:表达式3
    当我的表达式1成立时  执行表达式2  否则执行表达式3
    var a=10,b=20;
    a > b ? alert("a大"):alert("b大");

数据类型间转换

1.查变量类型
var a=123;
document.write(typeof(a));
2.数据类型间转换
var a="123";
var b=parseInt(a);//字符串a转换为整数b
document.write(b);

条件语句

if语句
    if(条件){
        函数体
    }

    if else语句
    if(条件){
        函数体1
    }else{
        函数体2
    }

    if.....else if......else语句
    if(条件1){

    }else if(条件2){

    }else if(条件n){

    }else{

    }
    举例:
    var a=3;
    if(a>4){
    document.write("a>4");
    }else{
    document.write("a不大于4");
    }
    switch语句:多分支语句

    switch(变量){
        case a:
        .....
        break;
        case b:
        .....
        break;
        case c:
        ...
        break;
        ........
        default:
            ....
            break;
    }
    举例:
    var core=parseInt(window.prompt('input'));//键盘录入整形
    switch(core/10){
        case 9:
        document.write("优秀");
        break;
        case 8:
        document.write("一般");
        break;
        default:
            document.write("不行");
            break;
    }

    循环结构:
    1、while循环:先判断条件 当条件成立 再执行
    while(循环成立条件){
        ....
    }

    2do...while循环:不论条件成不成立 先执行一遍 再判断
    do{
        .....
    }while(循环成立条件)

    3、for循环
    4、for in循环

    continue:
    跳过当前循环,直接进入循环的下一个步骤

    break:
    结束循环

节点操作

#增删改查
    一、获取节点:
    1、通过id获取
    document.getElementById("id")
    节点.getElementById("id值")
    !返回的是一个具体的节点

    2、通过标签名来获取节点
    getElementsByTagName("div")
    !返回的是一个节点数组,即使只有一个

    3、通过标签的Name值来获取
    getElementsByName("标签的name值")
    !返回的是一个节点数组

    4、通过class值来获取节点
    getElementsByClassName("类名")
    !返回的是一个节点数组
    二、创建插入节点
    1、document.createElement("div")//创建一个元素节点
    2、document.createTextNode("文本文本")//创建一个文本节点

    被插入的节点.appendChild(创建的节点)//在节点后面添加

    父节点.insertBefore(创建的节点,被插入的节点)//在已知父节点的某个孩子前面添加内容
    改变文本内容:
    选中的元素.innerText='';//直接将HTML代码当做字符来处理
    选中的元素.innerHTML='';//可以识别HTML代码
    删除:直接设置为空("")

    替换节点:
    父节点.replaceChild(新节点,老节点)

    克隆(复制节点)

    选中的元素.cloneNode(true/false):
    当clone参数为true的时候:选中元素里面所有懂得内容克隆
    当clone参数为false的时候:选中元素本身克隆

    删除节点:
    父节点.removeChild(子节点)

    节点的属性操作
    如何来获取属性:
        选中的元素.getAttribute("属性名")
    更改属性:
        选中的元素.setAttribute("属性名","新的属性值")
    新增属性
        选中的元素.setAttribute("原本没有的属性名","属性值")
    删除属性
        选中的元素.removeAttribute("属性名");

浏览器输出

#JavaScript 能够以不同方式“显示”数据:
1.使用 window.alert() 写入警告框
<script>
    window.alert(7 + 6);
</script>
2.使用 document.write() 写入 HTML 输出
<script>
  document.write(7 + 6);
</script>
3.使用 innerHTML 写入 HTML 元素
<p id="demo"></p>
<script>
  document.getElementById("demo").innerHTML = 7 + 6;
</script>
4.使用 console.log() 写入浏览器控制台
<script>
    console.log(7 + 6);
</script>

函数

1.js函数通过 function 关键词进行定义,其后是函数名和括号 (){}。

       1).函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)。

     2).圆括号["()"]可包括由逗号分隔的参数;

     3).由函数执行的代码被放置在花括号中:{}

2、函数分为:有名函数和匿名函数。

    有名函数:function funct_name(参数1,参数2,参数3){ 

    要执行的代码
   }

    匿名函数:function (参数1,参数2,参数3){ 

    要执行的代码
   }

3.构造函数:

 1)、在 js中,用 new 关键字来调用的函数,称为构造函数。

 2)、常用的构造函数: 
    var arr = []; var arr = new Array();      

4.调用函数:

  调用函数时【funct_name()】,一定加“()”;
  <div class="box" onclick="funct_name()">点击</div>
   <script type="text/javascript">
    function  funct_name(){
        alert("111111");
    }
   </script>
5.自调用函数
   <div class="box2" id="box2"></div>
    <script type="text/javascript">
    (function() {
        document.getElementById("box2").innerHTML = "您好";
    })();
   </script>
6.返回函数
   <div class="box" id="box"></div>
   <script type="text/javascript">
    function funct_name(a, b) {
        return a * b;
    }
    var x = funct_name(9, 8);
    document.getElementById("box").innerHTML = x;
   </script>

js前后端交互

https://www.cnblogs.com/gengzhen/p/12356367.html

4.参考

https://blog.csdn.net/weixin_30917213/article/details/99330105?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&utm_relevant_index=2