前端三剑客——javascript内置对象与其方法

news/2025/11/4 12:36:09/文章来源:https://www.cnblogs.com/guohan222/p/19185633

大纲:

  1.对象创建的常用3种方法

       引用/新增属性方法

  2.内置对象及其常见方法

      Number

      Math

      Date

      String

 

      Array

      对象与数组的解包操作以及在函数中的运用

      JSON

      console

 

 

对象创建的方法

  对象创建的常用三种方法

    //方法一   直接创建有属性和方法的对象var Person={name:"guohan",age:22,say(){console.log(Person.name);}}//引用属性和方法console.log(Person.name);Person.say();//新增属性和方法Person["hobby1"]="睡觉";Person.hobby2="打球";Person.call=function(){console.log(this.hobby1);       //如果是箭头函数则this指向父级作用域的this是window}Person.call();
//方法二创建函数后实例对象
function Person(name,age){this.name=name;this.age=age;this.say=()=>{console.log(this.age);}
}
//实例化对象和引用属性和方法
var man = new Person("guohan",22);
console.log(man.name);
man.say();
//新增属性和方法
man.call=function (){console.log(man.age);
}
man.call();
//方法三创建类后实例类的对象
class Person{constructor(name,age){this.name=name;this.age=age;}say(){console.log(this.age);}
}
//实例化对象和引用属性和方法
var man = new Person("guohan",22);
console.log(man.name);
man.say();
//新增属性和方法
man.call=function(){console.log(man.age);
}
man.call();

 

内置对象及其方法

image

   Number  数值对象

toFixed(n ):保留n个小数位

var num = 3.14;
console.log(num.toFixed());     //3
console.log(num.toFixed(1));    //3.1
console.log(num.toFixed(3));    //3.140

   Math    数学对象

Math.round(num)   对num进行四舍五入!取整!

//Math.round(num)   对num进行四舍五入!取整!console.log(Math.round(3.145));     //3//与python区别
/***     num = 10.346*     print(round(num,2))          //10.35*/

Math.ceil(nun)    对num进行向上取整  进一法取整

//Math.ceil(nun)    对num进行向上取整  进一法取整
console.log(Math.ceil(2.1));        //3

 Math.floor(num)   向下取整:保留整数部分去除小数部分

//Math.floor(num)   向下取整:保留整数部分去除小数部分
console.log(Math.floor(3.64));      //3

 Math.random()     获取[0,1)之间的随机数

 //Math.random()     获取[0,1)之间的随机数console.log(Math.random().toFixed(2));              //0.36//Math.random()*100     获取[0,100)之间的随机数console.log((Math.random()*100).toFixed(2));        //45.84//parseInt(Math.random()*100)     获取[0,100)之间的随机数整数console.log(parseInt((Math.random() * 100).toFixed(2)));    //26//随机返回指定范围的整数var ret = (min,max)=>parseInt(Math.random()*(max-min))+min;/*function ret(min,max){return parseInt(Math.random()*(max-min))+min;}*/console.log(ret(20,40));

    Date    时间对象

/**
 * 创建Date时间对象:         var t = new Date();
 * 获取系统本地时间:          console.log(t);
 * 获取年份:                t.getFullYear();
 * 获取月份(0-11):          t.getMonth()+1;
 * 获取几号(1-31):          t.getDate();
 * 获取星期几(0-6):          t.getDay();
 * 获取小时:                t.getHours();
 * 获取分钟:                t.getMinutes();
 * 获取秒数:                t.getSeconds();
 * 获取时间戳:              t.getTime();
 * 获取JSON格式时间:         t.toJSON();
 * @type {Date}
 */

//Date时间对象及其方法
/*** 创建Date时间对象:         var t = new Date();* 获取系统本地时间:          console.log(t);* 获取年份:                t.getFullYear();* 获取月份(0-11):          t.getMonth()+1;* 获取几号(1-31):          t.getDate();* 获取星期几(0-6):          t.getDay();* 获取小时:                t.getHours();* 获取分钟:                t.getMinutes();* 获取秒数:                t.getSeconds();* 获取时间戳:              t.getTime();* 获取JSON格式时间:         t.toJSON();* @type {Date}*/
var t = new Date();
//实例化时间对象new Date():  获取系统本地时间
console.log(t);                                 //Sun Nov 02 2025 21:37:22 GMT+0800 (中国标准时间)//对象.getFullYear():  获取年份
console.log(t.getFullYear());                   //2025//对象.getMonth():  获取月份(0-11)  0:11月  要加一
console.log(t.getMonth()+1);//对象.getDate():  获取几号(1-31)
console.log(t.getDate());                       //2//对象.getDay():  获取星期几(0-6)  0:星期天
console.log(t.getDay());                        //0//对象.getHours():  获取小时
console.log(t.getHours());                      //22//对象.getMinutes():  获取分钟
console.log(t.getMinutes());                    //6//对象.getSeconds():  获取秒
console.log(t.getSeconds());                    //40//获取时间戳1970-1-1
console.log(t.getTime());                       //1762092410769//对象.toJSON():  以JSON数据格式返回时间字符串
console.log(t.toJSON(),typeof t.toJSON() );                        //2025-11-02T14:10:53.322Z string//补0:比如分钟为10以内时显示:08
// function cramZero(param){
//     if(String(param).length<2){
//         param = '0'+param;
//         return param;
//     }
//     return param;
// }
var cramZero = (param) => String(param).length<2?'0'+param:param;
ret = `${t.getFullYear()}-${cramZero(t.getMonth()+1)}-${cramZero(t.getDate())}-${cramZero(t.getHours())}-${cramZero(t.getMinutes())}-${cramZero(t.getSeconds())}`;
console.log(ret);

    String    字符串对象

//String字符串对象及其方法
/*** var s = "guohan";* 拼接2个或者多个字符:                  s.concat(str);*将Unicode编码值转成对应字符:            s.fromCharCode(num)*返回指定字符首次的索引位置:               s.indexOf()* 判断是否以某个字符开头结尾:              s.startsWith/endsWith()* 判断是否包含某字符串:                  s.includes()* 获取字符串切片(支持负数索引):            s.slice(start,end)* 获取字符串切片:                         s.subString(start,end)* 获取指定长度字符串切片:                 s.str(start,len)*变大写/小写:                           s.toUpperCase/toLowerCase()* 去空白:                              s.trim()*分割:                                 s.split(指定字符)*替换一次/全部替换:                       s.replace/replaceAll()*search()*match()* @type {string}*/
//String字符串对象及其方法
/*** var s = "guohan";* 拼接2个或者多个字符:                  s.concat(str);*将Unicode编码值转成对应字符:            s.fromCharCode(num)*返回指定字符首次的索引位置:               s.indexOf()* 判断是否以某个字符开头结尾:              s.startsWith/endsWith()* 判断是否包含某字符串:                  s.includes()* 获取字符串切片(支持负数索引):            s.slice(start,end)* 获取字符串切片:                         s.subString(start,end)* 获取指定长度字符串切片:                 s.str(start,len)*变大写/小写:                           s.toUpperCase/toLowerCase()* 去空白:                              s.trim()*分割:                                 s.split(指定字符)*替换一次/全部替换:                       s.replace/replaceAll()*search()*match()* @type {string}*/var s = "guo";//对象.concat(字符串):  字符串拼接拼接2个或更多个
console.log(s.concat("han"));           //guohan//对象.fromCharCode():  将一个或者多个Unicode编码值装换成对应的字符     相当于py中chr//py:   print(chr(65))
console.log(String.fromCharCode(65));       //A//对象.indexOf(字符):  返回指定的字符在字符串中首次出现的位置
console.log(s.indexOf('o'));                //2//对象.startsWith(字符):  判断是否以某个字符开头
console.log(s.startsWith('s'));             //false//对象.endsWith(字符):  判断是否以某个字符结束
console.log(s.endsWith('o'));               //true//对象.includes(字符):  判断是否包含某个字符串
console.log(s.includes('uo'));              //true//对象.slice(开始下标,结束下标):  [start,end) 获取指定位置的切片支持负数索引
console.log(s.slice(0, -1));                //gu//对象.subString(开始下标,结束下标):  [start,end) 获取指定位置的切片
console.log(s.substring(0, 2));             //gu//对象.substr(开始下标,截取长度):  [start,len] 获取从指定索引位置获取指定数目的字符
console.log(s.substr(0, 2));                //gu//对象.toUpperCase():  将字符串变成大写
console.log(s.toUpperCase());               //GUO//对象.toLowerCase():  将字符串变成小写
console.log(s.toLowerCase());               //guo///对象.trim():  去除字符串两边空白
console.log(s.trim());//以指定字符分割成数组
console.log(s.split(""));                   //['g', 'u', 'o']//替换一次
console.log(s.replace("g", "h"));           //huo//py:默认全部替换,后加次数可指定替换次数//全部替换
console.log(s.replaceAll("g", "h"));//search()//match()

   RegExp

    

    待补

 

 

    Array    数组对象

//Array
/*** var num=["guohan","gh","gg","hh"]* 增删改查*  增:* 头部增加:                        array.unshift(value)* 尾部增加:                         array.push(value)* 指定位置增加:                      array.splice(index,0,value)** 删:* 头部删除:                          array.shift()* 尾部删除:                         array.pop()* 指定位置删除:                      array.splice(index,number)** 改:                               array.splice(index,1,value)** 查:*      下标* 查某个成员下标:                  array.indexOf(value)* 循环数组成员下标:                for(var index in array){console.log(index)}*      值* 查指定索引位置元素:               array[index]* 切片(左闭右开)支持负索引:          array.slice(star,end)* 循环数组所有成员:                for(var value of array){console.log(value)}* forEach函数查数组成员/下标:       array.forEach((value,index,array)=>{console.log(value,index,array})*      判断* 判断指定元素是否包含于数组:         array.includes(value)* 判断指定元素是否是数组:             Array.isArray(value)* 判断数组成员是否均满足条件:          array.every(func)* 判断数组成员是否至少有一个满足条件:     array,some(func)*** 顺序相关* 反转:                          array.reverse()* 按ascii码值进行排序:             array.sort()** 拼接* 数组拼接:                        array.concat(new_array)* 数组按指定字符拼接成字符串:          array.join(str)** 高级函数方法对数组进行操作* 通过指定函数对数组每个成员进行处理:     array.map(函数)* 通过指定函数对数组每个成员进行筛选:     array.filter(函数)* 通过指定函数对数组成员进行累计:         array.reduce(函数)*** @type {string[]}*/
//Array
/*** var num=["guohan","gh","gg","hh"]* 增删改查*  增:* 头部增加:                        array.unshift(value)* 尾部增加:                         array.push(value)* 指定位置增加:                      array.splice(index,0,value)** 删:* 头部删除:                          array.shift()* 尾部删除:                         array.pop()* 指定位置删除:                      array.splice(index,number)** 改:                               array.splice(index,1,value)** 查:*      下标* 查某个成员下标:                  array.indexOf(value)* 循环数组成员下标:                for(var index in array){console.log(index)}*      值* 查指定索引位置元素:               array[index]* 切片(左闭右开)支持负索引:          array.slice(star,end)* 循环数组所有成员:                for(var value of array){console.log(value)}* forEach函数查数组成员/下标:       array.forEach((value,index,array)=>{console.log(value,index,array})*      判断* 判断指定元素是否包含于数组:         array.includes(value)* 判断指定元素是否是数组:             Array.isArray(value)* 判断数组成员是否均满足条件:          array.every(func)* 判断数组成员是否至少有一个满足条件:     array,some(func)*** 顺序相关* 反转:                          array.reverse()* 按ascii码值进行排序:             array.sort()** 拼接* 数组拼接:                        array.concat(new_array)* 数组按指定字符拼接成字符串:          array.join(str)** 高级函数方法对数组进行操作* 通过指定函数对数组每个成员进行处理:     array.map(函数)* 通过指定函数对数组每个成员进行筛选:     array.filter(函数)* 通过指定函数对数组成员进行累计:         array.reduce(函数)*** @type {string[]}*/
var num=["guohan","gh","gg","hh"];
//对象.concat(数组)
console.log(num.concat([1, 2, 3]),num.concat([1, 2, 3]).length);     //['guohan', 'gh', 'gg', 'hh', 1, 2, 3]//增加
//对象.push():    尾部增加
num.push("h")
console.log(num);               //['guohan', 'gh', 'gg', 'hh', 'h']
//对象.unshift():     头部增加
num.unshift("h");
console.log(num);               //['h', 'guohan', 'gh', 'gg', 'hh', 'h']//删除
//对象.pop():     尾部删除
num.pop();
console.log(num);               //['h', 'guohan', 'gh', 'gg', 'hh']
//对象.shift():    头部删除
num.shift();
console.log(num);               //['guohan', 'gh', 'gg', 'hh']//指定位置增加删除和修改
//对象.splice(索引,删除的元素个数,增加的元素1,增加的元素2)//删除
console.log(num.splice(1, 2));      //['gh', 'gg']
console.log(num);                   //['guohan', 'hh']//增加
num.splice(1,0,222,333);
console.log(num,num.length);        //['guohan', 222, 333, 'hh'] 4//修改
num.splice(1,1,"gh");
console.log(num);                   //['guohan', 'gh', 333, 'hh']//指定数组成员返回索引
console.log(num.indexOf("guohan"));     //0//判断指定成员是否在数组中
console.log(num.includes("guohan"));    //true//对象.slice(start,end):  反回数组切片左闭右开
console.log(num.slice(1,-1));           //[222, 333]//对数组进行循环操作
//for循环获取下标
for(var data in num){console.log(data);
}
//for循环获取成员
for(var data of num){console.log(data);
}
//对象.forEach((值,索引,数组本身)=>{代码})
num.forEach((value,index,array)=>{console.log(value,index,array);
})//反转数组顺序
num.reverse();
console.log(num);       //['hh', 333, 'gh', 'guohan']//对象.sort():    根据ascii码值进行排序
console.log(num.sort());//以指定字符对数组进行拼接得到字符串
console.log(num.join(""));      //333ghguohanhh//案例:对字符串进行反转
function strrev(str){ret = str.split("").reverse().join("")return ret;
}
console.log(strrev("guohan"));      //333ghguohanhh//Array.isArray(对象):  判断指定对象是不是数组
console.log(Array.isArray(num));    //true//[333, 'gh', 'guohan', 'hh']//高级方法
//对象.map(指定函数):     通过指定函数对数组每个成员进行处理
console.log(num.map((value) => typeof (value) === 'number' ? value + 1 : value));       //[334, 'gh', 'guohan', 'hh']
console.log(num.map(function (value) {if (typeof (value) === 'number') {return value += 1;}else{return value;}
}));                                                                                    //[334, 'gh', 'guohan', 'hh']//对象.filter(筛选函数):      通过指定函数对数组成员进行筛选
console.log(num.filter((value) => typeof (value) === 'string' ? value : null));         //['gh', 'guohan', 'hh']
console.log(num.filter((value) => typeof (value) === 'number' ? value : null));         //333]
console.log(num.filter(function (value) {if (typeof (value) === 'number') {return value;} else {return null;}
}));                                                                                    //333]//对象.reduce(函数(参数1,参数2)):       通过指定函数对数组成员进行累计操作
console.log(num.reduce((value1, value2) => {return value1 + value2;
}));                                                                                    //333ghguohanhh/*** python中内置函数* import functools* content = [1,22,44,"gouhan","gh"]** #内置函数map* result1 = list(map(lambda x:x+2 if isinstance(x,int) else x,content))* print(result1)       [3, 24, 46, 'gouhan', 'gh']** #内置函数filter* result2 = list(filter(lambda x: isinstance(x,int),content))* print(result2)       [1, 22, 44]** #内置函数reduce* result3 = functools.reduce(lambda x,y:x+y if isinstance(x and y,int) else str(x)+y,content)* print(result3)       67gouhangh*///[333, 'gh', 'guohan', 'hh']
//对象.every(函数): 判断数组成员是否均满足条件,
console.log(num.every((value) => {return typeof value === 'string';
}));                                //false//判断数组成员是否至少有一个满足条件
console.log(num.some((value) => {return typeof value === 'string';
}));                                //true

    对象与数组的解包操作以及在函数中的运用    

      数组解包

//数组解包var array = [1,2,3,4];
//全接受
var  [num1,num2,num3,num4] = array;
console.log(num1,num2,num3,num4);           //1 2 3 4//顺序接收:部分接收
var [number1, ,number2] = array;
console.log(number1,number2);               //1 3//顺序接收:接收剩余数据
var [data1,data2,...args] = array;
console.log(args);                          //[3, 4]

      对象解包

//对象解包//不需要按顺序接收,而是按属性值接收,且属性名可以重新进行命名,不存在的属性值可以指定默认值,不指定则为undefinedvar Person = {name:"guohan",age:22,city:"hubei"};
//不存在的属性指定默认值
var {name,city,age,phone="111",hobby}=Person;
console.log(name,age,phone,hobby);          //guohan 22 111 undefined
//属性名重新命名
var {name : myName,age : myAge}=Person;
console.log(myName,myAge,phone,hobby);      //guohan 22 111 undefined

      解包在函数中的运用

//解包在函数中的运用//对象解包
function func1({x,y}){console.log(x+y);
}
func1({x:10,y:20});                          //30//数组解包
function func2([x,y]){console.log(x,y);
}
func2([1,2]);                                //1 2function func3([x,...args]){console.log(args);
}
func3([1,2,3,4]);                            //[2, 3, 4]

    JSON

//JSON
/*** JSON.stringify(obj):  把js对象转成JSON格式的字符串* JSON.parse(str):      把JSON格式的字符串转成js对象* @type {{name: string, age: number}}*/
//JSON
/*** JSON.stringify(obj):  把js对象转成JSON格式的字符串* JSON.parse(str):      把JSON格式的字符串转成js对象* @type {{name: string, age: number}}*/
//JSON.stringify(obj):  把对象转成JSON格式的字符串
var obj = {name:"gh",age:22};
console.log(JSON.stringify(obj));           //{"name":"gh","age":22}
//JSON.parse(str):      把符合JSON语法的字符串转换成js对象
var obj2 = '{"name":"gh","age":22}';
console.log(JSON.parse(obj2));              //Object:  {name: 'gh', age: 22}//与python区别
/*
"""
#import json
#json.dumps(obj):   把python中对象转成JSON格式字符串
#jspn.dumps(obj,ensure_ascii=False):    对象中有中文时序列化
#json.loads(str):   把json格式字符串转成python对象python中set datetime类型不可以转成json格式的字符串
python中元组序列化转成[]    反序列化时得到列表
"""
import json
info = {'name':'guohan','age':22}
#把python中对象转成json格式字符串
print(json.dumps(info))                         #{"name": "guohan", "age": 22}#python对象中有中文时序列化
info = {'name':'郭晗','age':22}
print(json.dumps(info,ensure_ascii=False))      #{"name": "郭晗", "age": 22}#把json格式字符串转成python对象
content = '{"name": "guohan", "age": 22}'
print(json.loads(content))                      #{'name': 'guohan', 'age': 22}content2 = '{"name": "郭晗", "age": 22}'
print(json.loads(content2))                     #{'name': '郭晗', 'age': 22}#集合无法序列化
info3 = {'guohan',22}
try:print(json.dumps(info3))
except TypeError as e:print("无法序列化")                          #无法序列化#元组序列化和反序列化
data = (1,2,3)
print(json.dumps(data))                         #[1, 2, 3]data2 = '[1, 2, 3]'
print(json.loads(data2))                        #[1, 2, 3]*/

   console    控制台操作对象,浏览器中进行代码打印与调试

//console.dir():        打印HTML元素变量信息
console.dir(document.body);
//console.table():      以表格形式打印数组对象信息
var info = {name:"guohan",age:22};
console.table(info);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/955566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年 11 月 PCD 铣刀厂家推荐排行榜,金刚石铣刀,聚晶金刚石铣刀,超硬刀具,高精度 PCD 铣刀公司推荐

2025 年 11 月 PCD 铣刀厂家推荐排行榜:金刚石铣刀与超硬刀具的技术演进与选购指南 随着制造业向高精度、高效率方向不断发展,聚晶金刚石(PCD)铣刀作为超硬刀具的重要类别,在航空航天、精密模具、电子零部件等领域…

2025 年 11 月平面铣刀厂家推荐排行榜,钨钢平面铣刀,合金平面铣刀,数控平面铣刀,高精度平面铣刀公司推荐

2025 年 11 月平面铣刀厂家推荐排行榜 在精密制造领域,平面铣刀作为数控加工的核心工具,其性能直接影响加工效率和产品质量。随着制造业向高精度、高效率方向发展,钨钢平面铣刀、合金平面铣刀、数控平面铣刀等产品的…

2025 年 11 月侧铣刀厂家推荐排行榜,钨钢侧铣刀,不锈钢侧铣刀,铝合金侧铣刀,高硬度侧铣刀公司推荐

2025 年 11 月侧铣刀厂家推荐排行榜:钨钢、不锈钢、铝合金及高硬度侧铣刀权威指南 在精密加工领域,侧铣刀作为关键切削工具,其性能直接影响加工效率与成品质量。随着制造业向高精度、高效率方向发展,对侧铣刀的技术…

2025年11月适合初中生的学习机品牌排行:市场热销榜全维度评价

进入初中,学科陡增、题型翻新、时间被作业和补习班切割得七零八落,家长最怕“盲目刷题”和“哑巴英语”同时出现。一台能把“精准练”和“听说读写”一次打包的学习机,成为不少家庭双减后的新刚需。工信部《2024在线…

《算法闯关指南:优选算法--滑动窗口》--15.串联所有单词的子串,16.最小覆盖子串 - 实践

《算法闯关指南:优选算法--滑动窗口》--15.串联所有单词的子串,16.最小覆盖子串 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importan…

2025年11月适合初中生的学习机品牌评测:五款主流机型横向对比

孩子升入初中,学科陡增、难度陡升,家长最焦虑的莫过于“课上听懂了,回家不会写”“题海战术耗时低效”。一台能把校内教材、校外拓展、错题管理、AI精准练一次打包的学习机,成为不少家庭双十一清单里的刚需。教育部…

2025年11月适合初中生的学习机品牌推荐:权威榜单对比与口碑评测

进入初中,学科陡增、难度升级,家长最焦虑的往往不是“买不买学习机”,而是“买哪台才能真正帮孩子减负提分”。新课标下题型更灵活,数学理化实验探究、英语听说机考、语文跨学科阅读,样样都在挑战孩子的自学能力。…

FT232RL FT232R国产替代芯片GP232RNL GP232RL高稳定性USB转串口桥接芯片

FT232RL FT232R国产替代芯片GP232RNL GP232RL高稳定性USB转串口桥接芯片GP232RNL简介GP232RNL为国产工控接口转换芯片,可以实现USB到串行UART接口的转换,适用于高稳定性数据传输应用,也可转换到同步、异步Bit-Bang接…

Oracle OCP认证考试题目详解082系列第1题 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

H3C AC+AP本地转发二层组网

1 实验准备 1.1 拓扑图1.2 IP划分IP地址 网关 VLAN 作用10.0.100.0/24 10.0.100.254 100 交换机管理地址10.0.101.0/24 10.0.101.254 101 AP管理地址10.0.10.0/24 10.0.10.254 10 AP业务地址2 实验配置 2.1 核心交换机…

jmeter中java.net.ConnectException: Connection refused: connect - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

疯了还是天才?(上):一门基于Vim,号称“AI无法取代”的新语言

系列文章导读: 在AI巨浪滔天的2024年,当所有开发者都在讨论Copilot和Sora时,一个团队却“逆流而行”,基于古老的Vim Language打造了一门新语言,并提出了一个惊人的目标:“让AI无法取代程序员”。这究竟是异想天开…

2025年11月教育资源好的学习机品牌推荐:权威榜单对比评测

孩子在家写作业遇到难题,家长辅导力不从心;校外培训缩减,家长急需校内同步、权威题库、视频讲解一站式解决;双职工家庭希望设备能自动批改、推送错题、生成学情报告,减少陪读时间。这些场景背后,是“教育资源是否…

小记

小记 ‍ ERP 记录 ‍ ‍ ‍ web3.0‍‍‍‍ ‍ 2024-9-6 今晚学习html 明天学习swift swiftUI 以及iOS常规的 UI IOS 开发发生的 swift html -uniapp 赚钱: 通过分享资源挣钱: 学前英语资源: wow English https://…

2025年11月教育资源好的学习机品牌推荐:口碑榜五强深度评测

孩子放学回家,作业辅导、预习复习、查漏补缺全落在家长身上,可教材年年更新、题型年年变化,家长精力有限,老师无法一对一,成绩波动让人焦虑。一台能把权威教材、同步题库、视频讲解、AI推题全部装进口袋的学习机,…

2025年11月教育资源好的学习机品牌推荐:榜单对比五强教育资源含金量

孩子在家写作业遇到难题,家长却抽不出时间讲解;学校进度快,基础薄弱的孩子越落越远;双减之后,校外辅导减少,家庭对校内同步、精准提分的需求反而更迫切。这些场景让“教育资源好的学习机”成为2025年秋冬家长搜索…

【pytest】使用 marker 向 fixture 传递数据 - 指南

【pytest】使用 marker 向 fixture 传递数据 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

2025年11月性价比高的学习机品牌推荐:热门排行深度对比

临近年底,家长群里最热的话题之一,就是“该给孩子换一台怎样的学习机”。双减之后,校内作业量下降,家庭自主学习时间反而拉长;加上各地中高考命题越来越强调素养与情境,单纯刷题已难提分。于是,一台能把“学、练…

Ubuntu 20 中 root 默认密码

Ubuntu 20 中 root 默认密码Ubuntu 20 中 root 用户默认没有设置密码,其账户也是被禁用的。 Ubuntu 系统为了提高安全性,设计上通过 sudo 权限来管理系统,而不是直接启用 root 账户。如果需要使用 root 账户,可以通…

2025年11月性价比高的学习机品牌推荐榜:五强排名与价值对比

“孩子成绩波动大,线下辅导太贵,网课又管不住,一台机器能不能把教材同步、错题订正、名师讲解、护眼、家长管控一次解决?最好价格别超过一台中端手机。”这是后台留言里出现频率最高的焦虑。教育部“双减”之后,家…