前段JavaScript学习---狂神说java笔记

前段 JavaScript

狂神说java(JavaScript)原视频地址

解译 归属 备注
Script 脚本 脚本语言
alert 警觉,弹窗 Script
console 控制台 Script
log 日志,打印 console.
Element 基本部分,测试 浏览器调试
Source 源码 浏览器调试
Network 网络 浏览器调试
Application 应用 浏览器调试
var 全局变量 Script
let 局部变量 Script
number 数字,号码 Script 不区分小数,整数
null 无效的 number
undefined 未定义 Script
use 使用 Script
strict 严格检查模式 Script use strict
upper 上边
case 具体情况
.toUpperCase() 转换为大写
lower 下面
.toLowerCase() 转换为小写
index 索引
.indexOf() 获得下标位置
t.substring() 获得指定下标的属性
indexOf() 通过元素获得下标索引 数组 相同数字会返回第一个
slice() 截取 数组 包前,不包后
push() 压入到尾部 数组
pop() 弹出尾部一个元素 数组
unshift() 压入到头部 数组
shift() 弹出头部的一个元素 数组
sort() 排序 数组
reverse() 元素反转 数组
concat() 合并多数组 数组 并未修改原数组
join 连接符 数组 特定字符串连接
* * * : * * * , 用:号描述 用,结尾 对象
delete 删减 对象 动态删减属性
XXX in XXX in 判断属性值是否相等 对象 可以继承父类属性
hasOwnProperty() 是否自身拥有 对象
forEach 循环 流量控制
for…in 遍历 流量控制 只能遍历数组下标
for…of 遍历 流量控制 可以遍历数组
Map 绘制 流量控制 遍历多个属性
arguments 转变成一个数组 流量控制
…rest 获取除了 已经定义的参数 之外的所有参数
window 窗,全局对象 方法 绑定所有全局变量
function 函数 方法
apply 申请,应用 方法 控制指向
JSON.stringify 对象转换为字符串 JSON
JSON.parse 字符串转化为对象 JSON
Date() 时间 Date()
__ proto __ 原型对象 类似于继承
alert() 弹窗 BOM
Navigator 浏览器 BOM
screen 屏幕尺寸 BOM
location 位置 DOM 当前页面的URL信息
document 当前页面 DOM 获取节点
history 浏览器历史记录 DOM
getElementsByTagName() 获取标题 DOM
getElementById() 获取id DOM
getElementsByClassName() 获取class DOM
innerText 修改文本 DOM
innerHTML 修改HTML DOM
.style.color 属性使用包裹 DOM
removeChild() 删除节点 DOM 通过父节点删除
children[] 动态删除 DOM 注意节点变化
appendChild() 追加到后面 DOM
createElement() 创建标签 DOM
setAttribute() 同时创建标识和内容 DOM
inserBefore 插入 DOM
onsubmit 提交时 DOM
$(选择器).函数(动作) jQuery

1、什么是JavaScript

1.1、概述

JavaScript 是一门脚本语言

一个合格的后端人员,必须要精通JavaScript

ECMAScript它可以理解为是JavaScript的一个标准

最新版本已经到 es6 版本

但是大部分浏览器还只停留在支持 es5 代码上

开发环境–线上环境,版本不一致

廖雪峰JavaScript

2、快速入门

2.1、引入JavaScript

  1. 内部标签6
<script>
	//备注
</script>
  1. 外部引入

abs.js

//...

test.html

<script src="js/abs.js"></script>
  1. 第一个JavaScript
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>第一个JavaScript</title>
    <!-- script标签内,写JavaScript代码 -->
    <!--  内部标签  -->
<!--    <script>-->
<!--        alert('hello,world');-->
<!--    </script>-->

    <!--外部引入    -->
    <!--注意:script标签必须成对出现    -->
    <script src="js/dy.js"></script>

<!--  不用显示定义type,也默认就是 javascript  -->
    <script type="text/javascript"></script>
</head>
<body>

<!--这里也可以存放代码-->
</body>
</html>

2.2、基本语法入门

<script>
  // 1.定义变量 变量类型 变量名 = 变量值
    var score = 1;
    //alert(num);
    // 2.条件控制
    if(score>60 && score<70){
    
        alert("60~70")
    }else if(score>70 && score<80){
    
        alert("70~80")
    }else{
    alert("other")}
    
    /*
    console.log(score) 在浏览器的控制台打印变量!类似于System.out.println();
    
    */
</script>

console.log()打印变量

浏览器必备调试须知

Elements:测试 HTML、CSS

Console(控制台):测试 JavaScript,可以直接输入script,打印消息

Sources(源码):可以断点测试

Network(网络):发生网络请求

Application(应用):外部数据库,存一些简单的数据保存到网页里面

2.3、数据类型

变量

var 王者荣耀 = “倔强青铜”;

number

js不区分小数和整数,Number

  • 123 整数
  • 123.1 浮点数123.1
  • 1.123e3 科学计数法
  • -99 负数
  • NaN not a number
  • Infinity
字符串

‘abc’ “abc”

布尔值

true,false

逻辑运算

&& 两个都为真,结果为真

|| 一个为真,结果为真

! 真即假,假即真

比较运算符!!!

=

类似于 1 == “1”(true)

== 等于(类型不一样,值一样,也会判断为true)

=== 绝对等于(类型一样,值一样,结果true)

这是一个js的缺陷,坚持不能使用**==**比较

须知

  • NaN===NaN,这个与所有的数值都不相等,包括它自己
  • 只能通过**isNaN(NaN)**来判断这个数是否是 NaN

浮点数问题

console.log((1/3)) === (1-2/3))

尽量避免使用浮点数进行运算,存在精度问题

Math.abs(1/3-(1-2/3))<0.00000001

可以这么计算,得出数已经接近于0

null 和 undefined
  • null 空
  • undefined 未定义
数组

Java数组的数值必须是相同类型的对象,js中不需要这样!

//保证代码的可读性,尽量使用[]
var arr = [1,2,3,'hello',null,true]

new Array(1,12,4,'hello')

取数组下标:如果越界了,会提示 undefined(未定义)

对象

对象是大括号{},数组是中括号[]

每个属性之间使用逗号隔开,最后一个不需要添加

//Person Person = new Person(1,2,3,4);
	var Person = {
   
        name:"qinjiang",
        age:3,
        tags:['js','java','...']
    }

取对象值

Person.name “qinjiang”

Person.age 3

2.4、严格检查规范

'use strict';严格检查模式,预防JavaScript的随意性导致产生的一些问题

<!--前提:IDEA 需要设置支持 ES6 语法
'use strict';   严格检查模式,预防JavaScript的随意性导致产生的一些问题
必须写在JavaScript的第一行
局部变量建议使用 let 去定义
-->
<script>
    'use strict'
//全局变量
    //var
  let i = 1;
</script>

3、数据类型

3.1、字符串

  1. 正常字符串我们使用单引号(’ ‘),或者双引号(“ ”)包裹

  2. 注意转义字符 \

    \ ’

    \n

    \t

    \u4e2d \u#### Unicode字符

    \x41 Ascll字符

  3. 多行字符串编写

    //`` teb 上面 esc键下面 (~)var msg = `	hello	
    world	
    你好ya	
    你好	`
    
  4. 模板字符串

    let name = "qinjiang";
    let age = 3;
    let msg = `你好呀,${
           name}`
    //输出结果:你好呀,qinjiang
    
  5. 字符串的长度和打印指定位置

    str.length

    console.log(student[0])

  6. 字符串的可变性:不可重新赋值

    赋值:student[0] = 1

    打印:console.log(student)

    结果:student

    0号位,未重新赋值

  7. 大小写转换

    // 注意,这里是方法,不是属性

    student.toUpperCase() //转换为大写

    student.toLowerCase() //转换为小写

  8. 获取指定属性下标位置

    student.indexOf(‘t’)

    1

  9. 获取指定下标的属性

    substring

    // [ ) 包含前面,不包含后面

    输入:student.substring(1) // 指:包含1号位及之后的元素

    输出:tudent

    输入:student.substring(1,3) // 指:包含1号位及3号位之前的元素

    输出:tu

3.2、数组

Array可以包含任意的数据类型

var arr = [1,2,3,4,5]; // 通过下标取值和赋值

arr[0];

arr[0] = 1;

  1. 长度

    arr.length

    注意:

    • JavaScript 数组长度可变,加入给 arr.length 赋值,数组大小就会发生变化
  • 新加入的元素显示为 undefined 未定义
    • 如果赋值过小,就会将多余的元素丢失
  1. indexOf,通过元素获得下标索引

    arr.indexof(2)

    1

    字符串的 “1” 和数字 1 是不同的

    (当有相同数字时,它会返回第一个数字下标)

  2. slice()

    • 截取Array的一部分,返回一个新数组
    • 类似于 student.substring(1)
    • [ ) 包含前面,不包含后面
  3. push() 、pop() 尾部

    • .push():压入到尾部
    • .pop() :弹出尾部的一个元素
  4. unshift()、shift() 头部

    • .unshift() :压入到头部
    • .shift() :弹出头部的一个元素
  5. 排序 sort()

    (3) [“B”, “C”, “A”];

    arr.sort()

    (3) [“A”, “B”, “C”];

  6. 元素反转 reverse()

    (3) [“A”, “B”, “C”];

    arr.reverse()

    (3) [“C”, “B”, “A”];

  7. concat()

    (3) [“C”, “B”, “A”];

    arr.concat([1,2,3])

    (6) [“C”, “B”, “A”, 1, 2, 3];

    arr

    (3) [“C”, “B”, “A”];

    注意:concat()并没有修改数组,只是会返回一个新的数组

  8. 连接符 join

    打印拼接数组,使用特定的字符串连接

    (3) [“C”, “B”, “A”];

    arr.join(’-’)

    “C-B-A”

  9. 多维数组

    arr = [[1,2] , [3,4] , [“5” , “6”]];

    arr[1][1]

    4

数组:存储数据(如何存,如何取,方法都是可以自己实现)

3.3、对象

若干个键值对

var 对象名字 = {
   
    		属性名: 属性值,
       		属性名: 属性值,
            属性名: 属性值}
            //定义了一个person对象,它有四个值
            var person = {
     
                name:"kuangsheng", 
                age:3,
                email:"24736743@qq.com",    
                score:59}

Js中对象,{…}表示一个对象,键值对描述属性 XXXX : XXXX,多个属性之间使用逗号隔开,最后一个属性不加逗号!

JavaScript中的所有的键都是字符串,值是任意对象

  1. 对象赋值

    person.name = “qinjiang”

    person.name

    “qinjiang”

  2. 使用一个不存在的对象属性,不会报错!undefined

    person.haha

    undefined

  3. 动态的删减属性,通过 delete 删除对象的属性

    delete person.name

    true

    person //不在存现name属性

  4. 动态的添加,直接给新的属性添加值即可

    person.haha = “haha”

    “haha”

    person //已存在haha属性

  5. 判断属性值是否在这个对象中! XXX in XXX!

    ‘age’ in person

    true

    //继承,JavaScript也可以继承父类属性

    ‘toString’ in person

    true

  6. 判断一个属性是否是这个对象自身拥有的 hasOwnProperty()

    person.hasOwnProperty(“toString”)

    false

    person.hasOwnProperty(“aeg”)

    true

3.4、流程控制

  1. if 判断

    var age = 3;
    if(age>10){
         		//第一判断
        		alert("hehe")
        }else if(age>3){
         	//第二判断
       		 alert("haha")
        }else{
         		//否者...    alert("kuwa~")}
    
  2. while 循环,避免程序死循环

    while(age<100){
         
          age = age + 1;
          console.log(age) 
          }
          do{
         
              age = age + 1;    
                console.log(age)
                }while(age<100)
    
  3. for 循环

    for(let i = 0; 1 < 100; i++){
         
        console.log(i)
        }
    
  4. forEach 循环

    ES5.1 引入

    var age = [12,3,12,123,423,56,72];
    //函数 == 方法
    age.forEach(function(value)){
         
                console.log(value)
                }
    
  5. for…in

    //for(var index in object){}
    for(var num in age){
         
        if(age.hasOwnProperty(num)){
                 
       	 	console.lg("存在")       
        	console.log(age[num])    
        }
      }
    
    var arr 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值