Java Script 基础一

一、JavaScript 简介    

    JavaScript 是一种轻量级,解释性或即时编译的编程语言。

    * JavaScript 直接写入HTML输入流

document.write("<h1> This is a title </h1>");

    * JavaScript 对事件的反应

<button onclick="submitForm()">Submit</button>
<script type="text/javascript">
    function submitForm() {
        alert("Submit some infomation")
    }
</script>

    * JavaScript 修改HTML内容

<button id="submit_btn" onclick="submitForm()">Submit</button>
<script type="text/javascript">
	function submitForm() {
	    let btn = document.getElementById("submit_btn");
	    btn.innerHTML = "New submit text";
	}
</script>

    * JavaScript 改变HTML样式

<button id="submit_btn" onclick="changeBackgroundColor()">Submit</button>
<script type="text/javascript">
	function changeBackgroundColor() {
	    let btn = document.getElementById("submit_btn");
	    btn.style.backgroundColor = "blue";
	}
</script>

二、JavaScript 输出

    JavaScript 的输出共有 4 种

    * window.alert() 浏览器弹出警告框

    * document.write() 将输出写在HTML中

    * innerHTML 写入到元素中

    * console.log() 控制台输出

三、JavaScript 运算符

    1_ 算术运算符

        加法: +          减法: -          除法: /          乘法: *          取余: %

        幂: **

0**1 // 0的1次幂
0
3**2 // 3的平方
9
5**3 // 5的立方
125

        递增: ++          递减: --

a = 1

a++
1

a
2

++a
3

a++ // 递增放在后面,先输出a的值,之后对a进行 加1的运算
++a // 递增放在前面,先对a进行 加1运算,之后输出a运算后的结果值

递减同理

        一元负号: -          一元正号: +

        一元负号运算符位于操作数前面,并转换操作数的符号。

        一元正号运算符位于其操作数前面,计算其操作数的数值,如果操作数不是一个数值,会尝试将其转换成一个数值。

        尽管一元负号也能转换非数值类型,但是一元正号是转换其他对象到数值的最快方法,也是最推荐的做法,因为它不会对数值执行任何多余操作。

        它可以将字符串转换成整数浮点数形式,也可以转换非字符串值 truefalse  null。小数和十六进制格式字符串也可以转换成数值。负数形式字符串也可以转换成数值(对于十六进制不适用)。如果它不能解析一个值,则计算结果为 NaN。

+12                                    // 12

+"23"                                 // 23

+"1.0"                                // 1

+"1.05"                              // 1.05

+"A"                                  // NaN

+true                                 // 1

+false                                // 0

+null                                  // 0

+function(val){ return val;} //NaN

    2_ 数组推导式

        * 对数组的遍历我们可以使用map、filter、剪头函数或者展开语法 来进行运算

a = ["ASD", "666", "ECC", "BCC"]

a.map((item, index) => {return item+index}) // 不会修改原数组,返回值是一个数组
["ASD0", "6661", "ECC2", "BCC3"]

a.filter((item) => { return item != "ASD" }) // 不会修改原数组,返回值是一个数组
["666", "ECC", "BCC"]

[...a, "QQQ"] // 展开语法可以将数组作为新数组的一部分
["ASD", "666", "ECC", "BCC", "QQQ"]

function sum(A,B,C,D) { return A+B+C+D; }
sum(...a)    // "ASD666ECCBCC"

        * for in    VS    for of

            for in 和 for of 可以对数组进行便利,但是个人尝试了一下 for in 同时可以遍历对象

--------------------- 遍历对象 ----------------------------
a = { AQ: '25', BQ: '36', CQ: '47' }

for( item in a) console.log(item) // 返回对象的Key
AQ
BQ
CQ

for( item of a) console.log(item)  // for of 不能对对象进行便利
Uncaught TypeError: a is not iterable


--------------------- 遍历数组 ----------------------------
a = ["ASD", "666", "ECC", "BCC"]

for( item in a) console.log(item) // for in 返回的是数组的下标
0
1
2

for( item of a) console.log(item) // for of 返回的是数组中的每一个元素
ASD
666
ECC

    3_ 位运算符

        按位与: &           a & b      两个操作数相应的比特位都是1时,结果才为1,否则为0。

        按位或:  |            a | b       两个操作数相应的比特位至少有一个1时,结果为1,否则为0。

        按位异或:  ^        a ^ b      当两个操作数相应的比特位有且只有一个1时,结果为1,否则为0。

        按位非: ~            ~a          反转操作数的比特位,即0变成1,1变成0

        左移: <<             a<<b      将 a 的二进制形式向左移 b (< 32) 比特位,右边用0填充。

        有符号右移: >>    a>>b      将 a 的二进制表示向右移 b (< 32) 位,丢弃被移出的位。

        有符号右移: >>>  a>>>b   将 a 的二进制表示向右移 b (< 32) 位,丢弃被移出的位,并使用 0 在左侧填充。

     负数的二进制如何表示?

         负数的表达形式是正值的补码 *

         原码: 一个整数绝对值的二进制表示,成为原码

         反码:将二进制数按位取反,所得的数为原码的反码

         补码:反码加1则为补码

  

原文地址:https://www.cnblogs.com/Lyh1997/p/14166204.html