首页 > 编程语言 >JavaScript基础

JavaScript基础

时间:2023-03-28 10:45:28浏览次数:50  
标签:arr name 对象 JavaScript 基础 var document 节点

1. 引入js

  1. https://www.w3cschool.cn/javascript/

  2. 用script标签,在其中写js代码

  3. <script src="JS/style.js"></script>
    
  • Number js不区分小数和整数 NaN表示不是一个Number类型的数据 Infinity表示无限大
  • 字符串 ‘abc' “abc”
  • 布尔值 ture,false
  • 逻辑运算 && || !
  • 比较运算符 ==(类型不一样,值一样) ===(数据类型和值都一样)
  • 数组 var arr = [1,2,"a"] 数组中的数据类型可以不同,下标越界会返回undefined
  • 对象 var a =

须知:

  1. NaN与所有的数值都不相等,包括自己,只能通过isNaN()来判断
  2. 尽量避免使用浮点数运算,存在精度问题
  3. null是空的意思,undefined是未定义

2. 严格检查模式

严格模式 的使用很简单,只有在代码首部加入字符串 “use strict”,限制性更强的JavaScript变体,它与常规JavaScript的语义不同,其分析更为严格。

  1. 不使用var声明变量严格模式中将不通过
  2. 任何使用’eval’的操作都会被禁止
  3. with被禁用等等

3. 数据类型

3.1 字符串

  1. 使用单引号或双引号包裹

  2. 注意转义字符 \ 比如: 'n ' '\t' '\x41'

  3. 多行字符串编写 用Tab上面的``包裹起来

  4. 模板字符串:

    var name = "66"
    var msg = `你好啊,${name}`
    
  5. 字符串不可变性

  6. 大小写转换: name.toUpperCase()

  7. 输出name中有几个字符a name.indexOf('a')

  8. substring:

    name.substring(1,3) 从下表为1的输出到下标为2的,左闭右开原则

3.2 数组

  1. 数组可以包含任意数据类型

  2. 通过给arr.length赋值,数组大小会发生变化,赋值小于之前的大小会丢失数据

  3. indexOf(元素) 通过元素获得下标

  4. arr.slice(1,3) 截取arr数组中下标为1的元素到下标为2的元素,左闭右开,赋值给新数组

  5. arr.push() 将参数压入数组后面 arr.pop()压出数组后面一个元素

  6. arr.unshift() 压入到头部 shift弹出头部一个元素

  7. 排序arr.sort()

  8. 元素反转arr.reverse()

  9. arr.concat([1,2,3]) 将[1,2,3]加在arr后面

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

    var arr=[1,3,4]
    arr.join('-')
    '1-3-4'
    

3.3 对象

  1. 对象是由若干键值对组成的,JS中所有的键都是字符串,值是任意对象
var body = {
    name:"lijialong",
    age: 18,
    sex: "male"
}
  1. 使用不存在的属性,不会报错,会返回 undefined
  2. 动态删减属性,通过delete删除对象的属性
  3. 动态的添加,直接给新的属性添加至即可
  4. 判断属性值是否在这个对象中

3.4 Map和 Set

  1. Map

JS中的map可以通过map.get(键)获取对应的值,还可以通过map.set(键,值)向map中增加数值

  1. Set :无序不重复集合
  • Set会去重new Set([1,1,3,2]) 输出结果是 1,3,2
  • set.add(*) 增加元素
  • set.delete(*) 删除元素
  • set.has(*) 查找元素

3.5 iterator

  1. 通过for of获取各种集合中的值

for (var x of arr){ console.log(x) }

  1. for in会获取下标

4. 函数

4.1 定义函数

  • 方法一 (推荐使用)
function abs(x){
    if(x > 0){
        return x;
    } else {
        return -x;
    }
}
  • 方法二
var abs = function(x){
    if(x > 0){
        return x;
    } else {
        return -x;
    }
}

注意:如果没有执行return,也会返回结果,结果就是undefined

4.2 参数

  1. arguments 代表传递进来的参数的数组

  2. rest 获取除了已经定义了的其它所有参数

function add(x, y, ...rest){
    console.log(x);
    console.log(y);
    console.log(rest);
}

4.3 变量作用域

  1. 全局变量

    JS中惟一的全局变量域就是window,为了减少冲突,可以定义唯一全局变量:

    //定义唯一全局变量
    var allHere = {};
    
    //为我们定义的全局变量中加入我们的'全局变量'
    allHere.name = 'GeekLee';
    allHere.add = function(x){
        return x;
    }
    
  2. let关键字

    其可以解决局部作用域冲突问题,建议用let定义局部变量

  3. const

    常量定义标识符:const ,常量用全大写命名

4.4 方法

  1. 对象中定义的函数就叫做方法,方法调用需要带括号

    通过外部定义内部方法:

    function getAge(){
        return 23;
    }
    
    var geekLee = {
        name: "geekLee";
        age: getAge
    }
    
  2. apply(对象, [参数列表])

    让geekLee执行getAge方法

    getAge.apply(geekLee,[]);
    

5. 内部对象

typeof x 会返回x所属的对象

5.1 Date

var now = new Data();

  • 时间戳 now.getTime();
  • 转换为本地时间格式 now.toLocaleString();

5.2 JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写,可以在多种语言之间进行数据交换 。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。

  • 对象转换为json字符串 JSON.stringify(对象)
  • json字符串转化为对象 JSON.parse('{"name":"geekLee","age":"23"}')

6. 面向对象编程

1. 原型(父类)

子类.__proto__ = 父类;

2. Class

2.1 构造器

class Student{
    constructor(name){
        this.name = name;
    }
}

2.2 继承

extends

7. 操作BOM对象(重点)

BOM:浏览器对象模型

  1. window

    代表浏览器窗口

  2. navigator

    封装浏览器信息

  3. screen

    代表屏幕

  4. location(重要)

    代表当前页面的URL信息

  5. document

    • 代表当前页面, HTML DOM文档树

    • 获取具体的文档数节点:document.getElementById('id');

    • 获取cookie(网络传输信息): document.cookie ,恶意人员可能会获取cookie进行违法活动,获取你的cookie相当于登录你的账号,所以要保护好你的"饼干"!

  6. history

    • 代表历史记录

    • 后退history.back()

    • 前进history.forward()

8. 操作DMO对象(重点)

浏览器网页就是一个Dom树形结构!

  • 更新,遍历,添加,删除Dom节点
  1. 获得Dom节点

    var x = document.getElementsByTagName('标签名');

    var x = document.getElementsById('Id');

    var x = document.getElementsByClassName('类名');

    获取子节点 var childrens = father.children;

    father.firstChild father.lastChild

  2. 更新节点

    修改文本的值:x.innerText = '123'

    修改超文本:x.innerHTML = '<strong 123 </strong' (因为md语言可以用HTML编写,所以省略括号)

    操作JS

    x.style.color = 'red'

    x.style.fontSize = '100px'

    x.style.padding = '2em'

  3. 删除节点

    1. 找到自己 var self = document.getElementById('Id');
    2. 找到自己的父节点 var father = self.parentElement;
    3. 删除自己 father.removeChild(self)

    注意,删除是一个动态的过程,连续删除操作会瞬时影响节点下标,比如:father.removeChild(father.children[0]) 结束后,下表为1的会变为此刻下表为0的

  4. 插入节点

    被插入节点Id.appendChild(插入节点Id)

  5. 创建节点

    创建一个新p标签var newP = document.createElement('p')

    newP.id = 'newP';

    newp.innerText = 'Hello';

    或者公用写法 newP.setAttribute('id','newP')

标签:arr,name,对象,JavaScript,基础,var,document,节点
From: https://www.cnblogs.com/geeklee/p/17264224.html

相关文章

  • linux shell基础--终端显示字体背景和字体颜色\033[0;30m
    ANSI标准ANSI标准规定了一种所有终端共享的指令集,并要求用ASCII的数字字符传递所有数值信息,用于控制linux终端上的光标位置、颜色和其他选项。在文本中嵌入确定的字节序列......
  • Flexray协议理论基础
    一、前言  去年由于工作原因停更了某C**N上Flexray的讲解,近期很多小伙伴私信询问停更Flexray技术文章的原因。。。呐~本次介绍将从Flexray的物理层、链路层、网络管理做......
  • 第一篇 javascript 数据类型
    1、数据类型基础数据类型(7种)1、String2、Number3、Boolean4、null5、undefined6、Symbol7、bigInit引用数据类型(Object)1、Object2、Array3、Fun......
  • 第二篇 javascript 标示符、变量、语句、操作符
    bycaixin深圳1、标识符及变量标识符1、所谓标识符,就是变量、函数、属性的名字,或者函数的参数。标识符申明规则:1、第一个字符必须是一个字母、下划线_、或者......
  • 深度学习的数学基础: 函数/参数优化/矩阵运算/向量化/卷积运算/张量运算
     1.函数与导数函数是一种映射关系,将一个或多个自变量的取值映射为一个因变量的取值。函数的导数表示函数在某一点处的变化率,即函数图像在该点的切线斜率。......
  • go基础语法规则
    前言:go语言基础语法记录正文:1、package package中必须包含一个main的package,并且只能有一个,不然无法编译2、使用import导入包,使用goland会自动导入3、每行的结尾......
  • java基础4 位运算的一些例子
    packageendual3;publicclassMainApp{ /** *位运算 *java语言支持整数类型的数据的位运算,位运算操作符包括: *1.&--与运算,二元操作符号,对两个操作元的每......
  • C语言之PTA刷题(基础编程题目集_函数题)
    本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。#include<stdio.h>voidPrintN(intN);intmain(){intN;scanf("%d",&N);Pr......
  • android实现多线程基础
    //创建线程类classMythreadextendsThread{@Overridepublicvoidrun(){//定义行为}}//实例化线程类MyThreadmt=newMyThread(“线程名称”);///......
  • 【git基础】git创建空白分支
    前言 [email protected]:rrr/traffic_light_detection.gitcdtraffic_light_detectiongitbranch-agitcheckout--orphannewbranchgitrm-rf......