IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> javascript学习 -> 正文阅读

[JavaScript知识库]javascript学习

引入JavaScript

<script>标签通常放在head标签里,也可以放在body里

1.内部标签

<script>

//写java代码

</script>

2.外部引入

在写一个js文件夹写一个qj.js

<!-- 外部引入,注意script不能自闭合-->
<script src="js/qj.js"></script>
<!--不写type,默认也是text/javascript-->
<script type="text/javascript">
</script>

基本语法

<!--    严格区分大小写-->
  <script>
    //一切变量都是var定义
    var score = 60;
    // alert(name);

    //条件控制
    if (score>60&&score<70){
        alert("60-70");
    }else if (score>70){
        alert("70+");
    }else{
        alert("other");
    }

    //console.log(score)在浏览器的console控制台打印变量。
   
    /*
    *asadas注释
    * */
  </script>

数据类型

数值,文本,图形,音频,视频

变量

不能数字开头

number

javascript不区分小数和整数,都用number

NaN表示这不是一个数

Infinity表示无限大

字符串

'sss'? "sss"

布尔值

true? false

逻辑运算

&&两个为真结果为真

||一个为真结果为真

比较运算(这是和java不一样的地方,要用===比较)

=赋值

==等于(类型不同,值相同也会true)

===绝对等于(必须要类型和值都相等)

须知:

1.NaN和任何数值都不相等,包括自己

2.只能通过isNaN(NaN)来判断这个数是否为NaN

浮点数问题:

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

null和undefined

空和未定义

数组

js中数组不需要同一类型,和java不一样

var i = [1, 2, 'yhhtrt', true, null];

通过类似console.log(i[0])来输出,下标越界会输出undefined

对象

对象定义用{}大括号,数组用[]中括号

定义对象

var person={
    name: "dcadvsd",
    age: 12,
    tags: ["dg", "thd"]
}

取对象的值

person.name

严格检查模式

<script>
  'use strict';//使用严格检查模式(必须写在script的第一行):预防出现一些不必要的问题
  //es6语法   建议用let定义局部变量
  let i = 1;

</script>

数据类型

字符串

1.可以使用单引号或者双引号

console.log("a");
console.log('s');

2.转义字符 \

\'

\n换行

\t

\u####Unicode字符

\x41? ?Ascll字符

3.多行字符串编写

使用~的引号

var o = `sds
sdfs
sdfsf
sdfsdfsd`

4.模板字符串

java 里的字符串拼接

在js里可以用下面的形式实现

let i = "hello";
let p = 1235;
let mm = `${i},${p}`;

5.字符串长度

str.length

6.字符串不可变

对字符串的某个下标赋值并没有改变原来的字符串

7. 大小写转换

str.toUpperCase()

str.toLowerCase()

8.获取指定的下标

str.indexof('t')

9.通过下标截取字符串[)

str.substring(1)表示截取下标为1后的所有字符串

str.substring(1,3)表示截取下标为1到2的字符串,取不到3

数组

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

1.长度

arr.length

注意假如对arr.length赋值,数组大小可变

2.arr.indexOf通过数组内的元素获得下标索引

arr.indexOf(s)

3.slice() 截取数组的一部分,返回一个新数组[)(和字符串截取的substring类似)

arr.slice(3)表示截取下标为3后的所有元素,返回一个新数组

arr.slice(3,5)表示截取下标为3到5的字符串,取不到5,返回一个新数组

4.push(),pop(),unshift(),shift()

arr.push()能往数组里添加元素,从尾部加

arr.pop()从数组去掉元素,从尾部去

arr.unshift()能往数组里添加元素,从头部加

arr.shift()从数组去掉元素,从头部去

5.排序sort()

arr = ["s", "dc", "ds", 2]
arr.sort()
arr = [2, "dc", "ds", "s"]

6.元素翻转

arr.reverse()就是变成倒序

7.concat()

arr.concat([1,2,3])这个方法可以将arr和这个新的数组拼接起来形成新数组

注意:不会改变原来的arr数组

8.连接符join

arr.join('-')打印拼接数组,使用特定的字符串连接
"2-dc-ds-s"

9.多维数组

arr = [[1,2],[3,4],[5,6]]

对象

若干个键值对组成

对象的每个属性都是字符串,值是任意

var person={

????????name: "dcadvsd",

????????age: 12,

????????tags: ["dg", "thd"]

}

1.对象赋值

person.name="asdasd"

2.动态的删减属性,通过delete

delete person.name

动态 的添加,直接写新属性并添加值即可‘

person.xinshuxin="fdsdfs"

3.判断属性值是否在这个对象中

'age'? in? person

存在会返回true

'toString' in? person

这个是父类的方法,一定是true

4.判断一个属性是否是对象自身的属性hasOwnProperty('age')

流程控制

foreach循环

var arr = ["s", "dc", "ds", 2];
arr.forEach(function (value) {
  console.log(value);
});

for? in循环输出数组

var arr = ["s", "dc", "ds", 2];

for (var num in arr){
  console.log(arr[num]);
}

Map和Set

map:

var  map = new Map([["a", 1], ["b", 112]]);
 var a = map.get("a");
 console.log(a);
 map.set("c", 21);
 map.delete("a");

set:无序不重复的集合

var set = new Set([1, 1, 1, 5, 6, 1]);//set可以去掉重复的值
set.add(2);
set.delete(1);
console.log(set.has(5));//是否包含某个元素

iterator

遍历数组

var arr = ["s", "dc", "ds", 2];
for (var num of arr){
  console.log(num);
}

遍历map

var  map = new Map([["a", 1], ["b", 112]]);
 for (let x of map) {
   console.log(x);
 }

遍历set

var set = new Set([1, 1, 1, 5, 6, 1]);//set可以去掉重复的值
for (let x of set) {
  console.log(x);
}

函数

定义函数

绝对值函数

方式一

function abs(x) {
//如果类型不是number,抛出异常
  if (typeof x !== 'number') {
    throw 'not a number';
  }
  if (x>=0){
    return  x;
  }else{
    return -x;
  }
}

方式二

var   abs = function(x) {
//如果类型不是number,抛出异常
  if (typeof x !== 'number') {
    throw 'not a number';
  }
  if (x>=0){
    return  x;
  }else{
    return -x;
  }
}

匿名函数,但是把结果赋值给对象

arguments代表传递进函数的所有参数,是一个数组

var   abs = function(x) {

  for(let i=0;i<arguments.length;i++){
    console.log(arguments[i]);
  }
  if (x>=0){
    return  x;
  }else{
    return -x;
  }
}

用arguments可以将所有参数输出,但是x始终代表第一个参数

rest获取除了已经定义的参数之外的所有参数,放在一个数组里

function aaa(a, b, ...rest) {
  console.log(rest);
}

只会打印出除了定义的参数以外的参数,并且放在一个数组里

?

变量的作用域

假设在函数体内声明,则在函数体外不可以使用? ?

假设一个函数定义了一个变量,在这个函数内嵌套了一个函数,内部的函数同样定义了一个同名的变量h3。分别在内外函数打印变量。

函数查找变量首先从自己的函数内找,找不到才去外部包括的函数去找同名变量。

 function aa() {
     let x = 2; 
     function bb() {
         let x = 1;
         console.log("bb" + x);
     }
     console.log("aa" + x);
     bb();
 }

全局对象window

    var x = 111;
    alert(x);
    alert(window.x);//默认所有的全局变量,都会自动绑定在window对象下
    window.alert(window.x);//alert函数也是window对象下的一个变量

JavaScript只有一个全局作用域,任何变量(函数也可以视为变量),假设没有在函数作用范围内被找到,就会向外查找,如果在全局作用域都没找到,就报错RefrenceError?

冲突

由于所有的全局变量都绑定到window上,如果有多个js文件,使用了相同的全局变量就会发生冲突。

要将自己的代码全部放入自己定义的唯一全局变量中

局部作用域

function aa() {
  for (var i = 0; i < 100; i++) {
    console.log(i)
  }
  console.log(i);
}

用var来定义i,发现i在循环外还能使用

接下去用let来定义i

function aa() {
  for (let i = 0; i < 100; i++) {
    console.log(i)
  }
  console.log(i);
}

发现报错,说明let定义的是局部的变量,建议使用let

定义常量

const a = "3.14";//只读变量,不能被修改

方法

var xu = {
  name:"liang",
  birth: 2000,
  //方法
  age: function () {
    var now = new Date().getFullYear();
    return now-this.birth;
  }
}

调用方法xu.age()

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:46:04  更:2021-07-14 10:48:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 17:10:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码