首页 > 编程语言 >javascript(一) Array对象, Object对象, this关键字,短路操作,Set集合,Map集合和String字符串操作

javascript(一) Array对象, Object对象, this关键字,短路操作,Set集合,Map集合和String字符串操作

时间:2022-08-28 12:13:18浏览次数:77  
标签:Map Object console log nameList javascript 集合 const message

javascript基础1,主要写(==和===的区别), Array对象, Object对象, this关键字,短路操作,Set集合,Map集合和String字符串操作。

1. == , ===

1. === 在js中需要值相等类型相等
2. == 在js中值相等,类型不相等会自动转换

2.Array

全部Array的接口可以查看 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

let nameList = ['Brian', 'Xiang', 'Shuang'];

// add item in the last
const len = nameList.push('Ella');
console.log(nameList, len);

// remove item in the last
const poped = nameList.pop();
console.log(nameList, poped);

// remove item in the first
const poped2 = nameList.shift();
console.log(nameList, poped2);

// add item in the first
const len2 = nameList.unshift(23);
console.log(nameList, len2);

// indexOf
console.log(nameList.indexOf('Shuang'));
console.log(nameList.indexOf('Neo'));

// include
console.log(nameList.includes('23'));
console.log(nameList.includes(23));

// at 按照下标返回索引的位置的值
console.log(nameList.at(1));
console.log(nameList.at(-1));

运行结果

3. Object

全部object的API可以查看 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object

let staff = {
    name: 'Brian',
    age: 30,
    locations: 'ShenZhen',
    tags: ['manager', 'father', 'banker']
};
console.log(staff.skill);
console.log(staff['locations']);
//对象的解构赋值,解构赋值时设置默认值的好处时防止undefined
const { loves = [], tags: roles = [] } = staff;
console.log(loves, roles);
// Object.keys() get all key list
const keys = Object.keys(staff);
// Object.values() get all values list
const values = Object.values(staff);
for (const item of keys) {
    console.log(item);
}
for (const item of values) {
    console.log(item);
}
// Object.entries() get key-value list
const stas = Object.entries(staff);
for (const [prop, val] of stas) {
    console.log(prop, val);
}

const machine = {
    info0: {
        local: ['123.12', '78.43'],
        data: {
            blue: 775.3,
            green: 786.4
        }
    },
    info1: {
        local: ['123.12', '78.43'],
        data: {
            blue: 775.3,
            green: 786.4
        }
    }
}

const mcs = Object.entries(machine);
for (const [name, { local, data }] of mcs) {
    console.log(`${name} - local: ${local[1]} - data: ${data?.green}`)
}

运行结果

4. this关键字

箭头函数的this指向全局this, 普通申明函数的this执行调用方,也就是谁调用这个方法,this就指向这个对象,如果是直接执行申明的普通函数, this是undefined的

console.log(this);

const fun = function () {
    console.log(this);
}
fun();

const fun2 = () => {
    console.log(this);
};
fun2();

var name = "rdc";
const rdc = {
    name: "RDC",
    type: "bank",
    location: "SG",
    do1: function () {
        console.log(this);
        const do3 = function () {
            console.log(this);
        }
        do3();
    },
    do2: () => {
        console.log(this);
        const do4 = () => {
            console.log(this.name);
        }
        do4();
    }
}
rdc.do1();
rdc.do2();

运行结果

5.短路操作

js的短路操作有 && || 和??

// OR 前面一项为真(true,非0,非空,非null, 非undefined) 就返回第一项,否则返回第二项
console.log(5 || 'brian');
console.log('' || 'brian');
console.log(true || 'brian');
console.log(undefined || null);
console.log([] || NaN);

const obj = {
    names: "heshuang"
}
// obj.skill = obj.skill || 'full stack';
obj.skill ||= 'full stack';
console.log(obj);

// AND 前面一项真就返回第二项,否则返回第一项
console.log(5 && 'brian');
console.log('' && 'brian');
console.log(true && 'brian');
console.log(undefined && null);
let hongxiang = 'IOS developer';
console.log(hongxiang &&= 'Full Stack Developer');

// ?? Nullish: null and undefined 前面一项为真 (非null, 非undefined)就返回第一项否则返回第二项
let hong;
const value = hong ?? 99;
console.log(value);
hong = 66;
const value2 = hong ?? 99;
console.log(value2);
hong ??= 999;
console.log(hong);

if (!hong.call?.(1, 2)) {
    console.log(`hong.call() method not exist`);
}

运行结果

6.Set集合

js的Set的API可以查看 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set

const names = ['Brian', 'William', 'Kelvin', 'Brian', 'Neo'];
const ns = new Set(names);
console.log(ns.size);
console.log(new Set('KAWA'));
console.log(ns.has('wil'), ns.has('Neo'));
console.log(ns.add('Ella'));
console.log(ns.delete('Neo'), ns);

运行结果

7. Maps集合

js的Map的API可以查看 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map

const mps = new Map();
mps.set('name', 'brian')
    .set('job', 'banker')
    .set('age', 30);

console.log(mps.get('job'));
for (const [key, val] of mps) {
    console.log(key, val);
}
const fm = new Map([
    ['father', '86kg'],
    ['me', '74kg'],
    ['mother', '53kg'],
    ['wife', '62kg']
]);
console.log(fm.get('me'), fm);
console.log([...fm.keys()]);
console.log([...fm.values()]);

运行结果

8. String字符串的操作

js的String的全部API可以查看 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String

const message = `{
    'status': 500,
    'errorCode':'GFH-70006',
    'data':{},
    'message':'Application Error'
}`;
console.log([...message]);
console.log(message.length);
console.log(message.indexOf('0'));
console.log(message.lastIndexOf('0'));
console.log(message.slice(16, 19));
console.log(message.slice(message.indexOf('message') - 1, -1));

console.log(message.toUpperCase());
const na = 'hUanGLiang';
console.log(na[0].toUpperCase() + na.slice(1).toLowerCase());

const email = ' huanghuang @gmial.com \t\n';
console.log(email.trim());

const content = 'A is good, A is best';
console.log(content.replace('A', 'LaoChen'));
console.log(content.replaceAll('A', 'LaoChen'));
console.log(content.includes('good'), content.includes('bad'));
console.log(content.startsWith('A'), content.endsWith('bad'));
console.log(content.split(' '));

//Padding 填充字符 数据脱敏的时候会用到
console.log(na.padStart(20, '#'));
console.log(na.padEnd(20, '#'));

// Repeat 重复多次
const power = 'day day up!';
console.log(power.repeat(5));

运行结果

代码地址: https://github.com/showkawa/H5C3/blob/master/js/basic/js_basic_01.js

标签:Map,Object,console,log,nameList,javascript,集合,const,message
From: https://www.cnblogs.com/hlkawa/p/16613703.html

相关文章

  • JavaScript Window Location
    JavaScriptWindowLocation https://www.w3school.com.cn/js/js_window_location.aspwindow.location对象可用于获取当前页面地址(URL)并把浏览器重定向到新页面。Win......
  • javascript:void(0) 含义
    javascript:void(0)含义|菜鸟教程 https://www.runoob.com/js/js-void.html我们经常会使用到 javascript:void(0) 这样的代码,那么在JavaScript中 javascript:vo......
  • JavaScript 正则表达式
    JavaScript正则表达式|菜鸟教程 https://www.runoob.com/js/js-regexp.html正则表达式(英语:RegularExpression,在代码中常简写为regex、regexp或RE)使用单个字符串来描......
  • JavaScript实现栈结构(Stack)
    Js实现栈结构一、前言1.1什么是数据结构数据结构就是在计算机中,存储和组织数据的方式。例如:图书管理,怎样摆放图书才能既能放很多书,也方便取?常见的数据结构:栈(Stack)......
  • 集合
    1、创建集合创建集合使用{}或set(),但是如果要创建空集合只能使用set(),因为{}用来创建空字典。特点:1.集合可以去掉重复数据;2.集合数据是无序的......
  • Java学习-第一部分-第二阶段-第五节:集合
    集合笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html)前面我们保存多个数据使用的是数组,那么数组有不足的地方,我们分析一下。●数组长度开始时必须指定......
  • Javascript中逗号和分号区别
     因为分号被视为多个语句,逗号被视为一个语句。那么多个语句和一个语句有什么区别呢?各种需要大括号的地方可以省略大括号,从而减少字节数比如 if(condition){foo(......
  • jmap
    jmap此命令用来查看内存信息,实例个数以及占用内存大小 jmapjmap-histo-F 27515> ./log.txt  查看堆信息jmap-heap进程IdAttachingtoprocessID2......
  • JavaScript Window Location
    JavaScriptWindowLocation https://www.w3school.com.cn/js/js_window_location.aspwindow.location对象可用于获取当前页面地址(URL)并把浏览器重定向到新页面。Win......
  • javascript脚本应该写在代码的什么地方
    javascript脚本应该写在代码的什么地方_百度知道 https://zhidao.baidu.com/question/981893155394447739.htmlcmvibahy2013-10-10 · TA获得超过4116个赞关注 ......