ES6 - 对象新增的一些常用方法
文章目录
- 1,Object.is()
- 2,Object.asign()
- 3,Object.getOwnPropertyDescriptors()
- 4,Object.setPrototypeOf()和getPrototypeOf()
- 5,Object.keys()、values() 和 entries()
- 6,Object.fromEntries()
- 7,Object.hasOwn()
1,Object.is()
再ES5中 比较两个值是否相等,只有两个运算符:相等运算符(
==
)和严格相等运算符(===
)
但它们都有缺点,前者会自动转换
数据类型,后者的NaN
不等于自身,以及+0
等于-0
。
先说它们两个的比较过程:
双等号==
:
(1)如果两个值类型相同,再进行三个等号(===)的比较
(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
1)如果一个是null,一个是undefined,那么相等
2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较
三等号===
:
(1)如果类型不同,就一定不相等
(2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN
,那么不相等。
(3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
(4)如果两个值都是true
,或是false
,那么相等
(5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等
(6)如果两个值都是null
,或是undefined
,那么相等
ES6 提出“Same-value equality”(同值相等)算法,用来解决这个问题。Object.is
就是部署这个算法的新方法。它用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。
Object.is('123', '123')
// true
Object.is({}, {})
// false
Object.is([], [])
// false
Object.is()
判断两个值是否相同。如果下列任何一项成立,则两个值相同:
- 两个值都是
undefined
- 两个值都是
null
- 两个值都是
true
或者都是false
- 两个值是由相同个数的字符按照相同的顺序组成的字符串
- 两个值指向同一个对象
- 两个值都是数字并且
- 都是正零
+0
- 都是负零
-0
- 都是
NaN
- 都是除零和
NaN
外的其它同一个数字
- 都是正零
如下的案例:
console.log(111 == '111');// true 先转数子再比较是否一样// 1,判断 undefined console.log(undefined === undefined); // trueconsole.log(Object.is(undefined, undefined)); // true// 2,判断 null console.log(null === null); // trueconsole.log(Object.is(null,null)); // true// 3,判断空数组[]console.log([] === []); // falseconsole.log(Object.is([],[])); // false// 4,需要特别注意下 +0和-0console.log(+0 === -0); // true 显然是判断失误了console.log(Object.is(+0, -0)); //false// 5,判断NaNconsole.log(NaN === NaN); // false 显然也是判断失误了console.log(Object.is(NaN,NaN)); // true
可以看出,使用Object.is()方法会有更高的准确度。
2,Object.asign()
- 基本用法
Object.assign()
方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。
// 目标对象 也可以是一个空对象const target = { name: 'Eula' };// 源对象 可以有多个const source1 = { age: 18 };const source2 = { friend: 'Amber' };Object.assign(target, source1, source2);console.log("target:",target); //{name: 'Eula', age: 18, friend: 'Amber'}
Object.assign()
方法的第一个参数是目标对象,后面的参数都是源对象。
注意 :如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性,如下:
// 目标对象 const target = { name: 'Eula' }; // 这个会被覆盖掉// 源对象 const source1 = { age: 18 };const source2 = { name: 'Amber' };Object.assign(target, source1, source2);console.log("target:",target); //{name: 'Amber', age: 18}
Object.assign()
拷贝的属性是有限制的,只拷贝源对象的自身属性(不拷贝继承属性),也不拷贝不可枚举的属性(enumerable: false
)。
let copyA = Object.assign({ name: "Eula" },Object.defineProperty({}, "age", {enumerable: false, // 不可枚举value: 18 // 为此属性添加值 18 }));console.log("copyA:",copyA);//{ name: "Eula" }
上面代码中,Object.assign()
要拷贝的对象只有一个不可枚举属性age
,这个属性并没有被拷贝进去。如果把enumerable
改为true
,就可以成功拷贝;
- assign()方法 注意事项:
(1)浅拷贝
Object.assign()
方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。
const obj1 = {my:{ name: "Eula"} };const obj2 = Object.assign({}, obj1);// 改变源对象的属性obj1.my.name = "Amber"console.log(obj2); //{my: {name: 'Amber'}}
Object.assign()
拷贝得到的是这个对象的引用。这个对象的任何变化,都会反映到目标对象上面。
(2)同名属性的替换
对于这种嵌套的对象,一旦遇到同名属性,Object.assign()
的处理方法是替换,而不是添加。
const target = { my: { name: "Eula", age: 18 } };const source = { my: { name: "Amber" } };let res = Object.assign(target, source);console.log(res);// {my: {name: 'Amber'}}
一些函数库提供Object.assign()
的定制版本(比如 Lodash 的_.defaultsDeep()
方法),可以得到深拷贝的合并。
3,Object.getOwnPropertyDescriptors()
该方法返回指定对象所有自身属性(非继承属性
)的描述对象;如下:
const obj1 = {name: "Eula",fun: function () {return "优菈";}};const Descriptors = Object.getOwnPropertyDescriptors(obj1)console.log("Descriptors:",Descriptors);
打印结果如下:
4,Object.setPrototypeOf()和getPrototypeOf()
- setPrototypeOf()
Object.setPrototypeOf
方法用来设置一个对象的原型对象;下面案例是给obj原型上添加一个属性 age:
let obj1 = { name: "Eula" };let obj2 = { age: 18 };// 下面是给obj1添加一个属性 nameObject.setPrototypeOf(obj1, obj2);console.log(obj1.age); //18
- getPrototypeOf()
该方法与Object.setPrototypeOf
方法配套,用于读取一个对象的原型对象,下面是读取obj1 新增的原型属性:
let obj1 = { name: "Eula" };let obj2 = { age: 18 };// 下面是给obj1添加一个属性 nameObject.setPrototypeOf(obj1, obj2);// 获取里面原型对象console.log(Object.getPrototypeOf(obj1)); // { age: 18 }
5,Object.keys()、values() 和 entries()
(1) Object.keys()
返回自身的(不含继承的)所有可遍历(enumerable)属性的键名
的数组。
const ys = { KamisatoAyaka: '神里绫华', ShenliLingren: '神里绫人' };let ysKeys = Object.keys(ys)console.log(ysKeys); // ['KamisatoAyaka', 'ShenliLingren'] 注意:只返回了对象每一项的键名
(2)Object.values()
返回自身的(不含继承的)所有可遍历(enumerable)属性的键值
的数组。
const ys = { KamisatoAyaka: '神里绫华', ShenliLingren: '神里绫人' };let ysvalues = Object.values(ys)console.log(ysvalues); // ['神里绫华', '神里绫人'] 注意:只返回了对象每一项的键值
(3)Object.entries()
返回一个对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对
的数组。
注意:entries方法
同时返回了此对象的键值对
, 并用一个数组包装。
const ys = { KamisatoAyaka: "神里绫华", ShenliLingren: "神里绫人" };let ysentries = Object.entries(ys);console.log(ysentries);// 同时返回了键值对 并用一个数组包装// ['KamisatoAyaka', '神里绫华']// ['ShenliLingren', '神里绫人']
以下是配合for of 循环使用:
1,keys()是对键名的遍历
let obj = {Amber: "安柏",Eula: "优菈",KamisatoAyaka: "神里绫华"};// for of不支持遍历普通对象,可通过与Object.keys()搭配使用遍历for (let key of Object.keys(obj)) {console.log(key); // Amber,Eula,KamisatoAyaka 拿到的都是对象的键名}console.log(Object.keys(obj)); //(3) ['Amber', 'Eula', 'KamisatoAyaka']
2,values()是对键值的遍历
let obj = {Amber: "安柏",Eula: "优菈",KamisatoAyaka: "神里绫华"};for (let key of Object.values(obj)) {console.log(key); // 安柏,优菈,神里绫华 拿到的都是对象的值}console.log(Object.values(obj)); //(3) ['安柏', '优菈', '神里绫华']
3,entries()是对键值对的遍历
let obj = {Amber: "安柏",Eula: "优菈",KamisatoAyaka: "神里绫华"};for (let key of Object.entries(obj)) {console.log(key);// ['Amber', '安柏']// ['Eula', '优菈']// ['KamisatoAyaka', '神里绫华']}console.log(Object.entries(obj));// 会以一个数组重新包装起来// [// ["Amber", "安柏"],// ["Eula", "优菈"],// ["KamisatoAyaka", "神里绫华"]// ];
6,Object.fromEntries()
Object.fromEntries()
方法是Object.entries()
的逆操作,用于将一个键值对数组转为对象。
Object.fromEntries([['foo', 'bar'],['baz', 42]
])
// { foo: "bar", baz: 42 }
该方法的主要目的,是将键值对的数据结构还原为对象,因此特别适合将 Map
结构转为对象。
// 例一
const entries = new Map([['foo', 'bar'],['baz', 42]
]);Object.fromEntries(entries)
// { foo: "bar", baz: 42 }// 例二
const map = new Map().set('foo', true).set('bar', false);
Object.fromEntries(map)
// { foo: true, bar: false }
该方法的一个用处是配合URLSearchParams
对象,将查询字符串转为对象。
Object.fromEntries(new URLSearchParams('foo=bar&baz=qux'))
// { foo: "bar", baz: "qux" }
7,Object.hasOwn()
Object.hasOwn()
时用来判断是否为自身的属性。
JavaScript 对象的属性分成两种:自身的属性和继承的属性。对象实例有一个
hasOwnProperty()
方法,也可以判断某个属性是否为原生属性。
Object.hasOwn()
可以接受两个参数,第一个是所要判断的对象,第二个是属性名:
const foo = Object.create({ a: 123 });
foo.b = 456;Object.hasOwn(foo, 'a') // false
Object.hasOwn(foo, 'b') // true
上面示例中,对象foo的属性a是继承属性,属性b是原生属性。Object.hasOwn()
对属性a返回false
,对属性b返回true
。
Object.hasOwn()
的一个好处是,对于不继承Object.prototype的对象不会报错,而hasOwnProperty()是会报错的。
const obj = Object.create(null);obj.hasOwnProperty('foo') // 报错
Object.hasOwn(obj, 'foo') // false
上面示例中,Object.create(null)返回的对象obj是没有原型的,不继承任何属性,这导致调用obj.hasOwnProperty()会报错,但是Object.hasOwn()就能正常处理这种情况。
相关文章:
![](https://img-blog.csdnimg.cn/c9a4526d0ae24ba1bdb9f15971643eec.png#pic_center)
ES6 - 对象新增的一些常用方法
文章目录 1,Object.is()2,Object.asign()3,Object.getOwnPropertyDescriptors()4,Object.setPrototypeOf()和getPrototypeOf()5,Object.keys()、values() 和 entries()6,Object.fromEntries()7,…...
![](https://img-blog.csdnimg.cn/e60a559fc07f4bb6afea55e33f644fb0.png)
半导体存储电路
存储电路 存储单元:只能存储一位数据 寄存器:存储一组数据 存储单元 静态存储单元:包含锁存器和触发器,只要不断电,静态存储单元的状态会一直保持下去。 动态存储单元:利用电容的电荷存储效应来存储数据。…...
![](https://img-blog.csdnimg.cn/02ec15ae43b843bd99bc67d455fb35e7.png)
web前端之CSS操作
文章目录 一、CSS操作1.1 html元素的style属性1.2 元素节点的style属性1.3 cssText属性 二、事件2.1 事件处理程序2.1.1 html事件2.1.2 DOM0事件(适合单个事件)2.1.3 DOM2事件(适合多个事件) 2.2 事件之鼠标事件2.3 事件之Event事…...
![](https://img-blog.csdnimg.cn/e75b7d0ae26f4b47a13ee9f195d9b01e.jpeg)
Python SQLAlchemy ( ORM )
From Python中强大的通用ORM框架:SQLAlchemy:https://zhuanlan.zhihu.com/p/444930067Python ORM之SQLAlchemy全面指南:https://zhuanlan.zhihu.com/p/387078089 SQLAlchemy 文档:https://www.sqlalchemy.org/ SQLAlchemy入门和…...
![](https://img-blog.csdnimg.cn/img_convert/a3da07d86eec32da1b4d82534cb7c129.png)
鉴源实验室丨汽车网络安全运营
作者 | 苏少博 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 概 述 1.1 背景 随着车辆技术的不断进步和智能化水平的提升,车辆行业正经历着快速的变革和技术进步。智能化…...
![](https://img-blog.csdnimg.cn/670541e85b624ebb81df71d86f88a07a.png)
分布式链路追踪之SkyWalking详解和实战
SkyWalking 文章目录 SkyWalking1.SkyWalking概述2.SkyWalking架构设计3.SkyWalking部署4.应用程序接入SkyWalking5.SkyWalking配置应用告警5.1.告警规则5.2.Webhook(网络钩子)5.3.邮件告警实践 6.项目自动化部署接入SkyWalking6.1 整体思路6.2 启动参数…...
![](https://img-blog.csdnimg.cn/b579a56f62774eb48f03fce6a8b32a14.png)
【工程实践】使用EDA(Easy Data Augmentation)做数据增强
工程项目中,由于数据量不够,经常需要用到数据增强技术,尝试使用EDA进行数据增强。 1.EDA简介 EDA是一种简单但是非常有效的文本数据增强方法,是由美国Protago实验室发表于 EMNLP-IJCNLP 2019 会议。EDA来自论文《EDA: Easy Data…...
![](https://img-blog.csdnimg.cn/bcef973f63404640ae55a9c59afce8c0.jpeg)
ClickHouse(十三):Clickhouse MergeTree系列表引擎 - ReplicingMergeTree
进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…...
![](https://img-blog.csdnimg.cn/92dba3b4570f448dbc11c946153ff33b.png#pic_center)
机器学习笔记之优化算法(十)梯度下降法铺垫:总体介绍
机器学习笔记之优化算法——梯度下降法铺垫:总体介绍 引言回顾:线搜索方法线搜索方法的方向 P k \mathcal P_k Pk线搜索方法的步长 α k \alpha_k αk 梯度下降方法整体介绍 引言 从本节开始,将介绍梯度下降法 ( Gradient Descent,GD ) …...
![](https://img-blog.csdnimg.cn/879c01392cfe4421a2b8be8d3d8d2c00.png)
Selenium 根据元素文本内容定位
使用xpath定位元素时,有时候担心元素位置会变,可以考虑使用文本内容来定位的方式。 例如图中的【股市】按钮,只有按钮文本没变,即使位置变化也可以定位到该元素。 xpath内容样例: # 文本内容完全匹配 //button[text(…...
![](https://img-blog.csdnimg.cn/b06a401d50e945758cb37a253e491e39.png#pic_center)
第17章-Spring AOP经典应用场景
文章目录 一、日志处理二、事务控制三、参数校验四、自定义注解五、AOP 方法失效问题1. ApplicationContext2. AopContext3. 注入自身 六、附录1. 示例代码 AOP 提供了一种面向切面操作的扩展机制,通常这些操作是与业务无关的,在实际应用中,可…...
![](https://img-blog.csdnimg.cn/492f4713a86f464888227ea518c553c4.png#pic_center)
Leetcode周赛 | 2023-8-6
2023-8-6 题1体会我的代码 题2我的超时代码题目体会我的代码 题3体会我的代码 题1 体会 这道题完全就是唬人,只要想明白了,只要有两个连续的数的和,大于target,那么一定可以,两边一次切一个就好了。 我的代码 题2 我…...
![](https://img-blog.csdnimg.cn/725c3f502fc744b2b0a53249502e7c5c.png)
ts中interface自定义结构约束和对类的约束
一、interface自定义结构约束对后端接口返回数据 // interface自定义结构 一般用于较复杂的结构数据类型限制 如后端返回的接口数据// 首字母大写;用分割号隔开 interface Iobj{a:number;b:string } let obj:Iobj {a:1,b:2 }// 复杂类型 模拟后端返回的接口数据 interface Il…...
![](https://img-blog.csdnimg.cn/7c7295fd8ee342ccb45dffdbfdf4b48a.png)
Oracle单实例升级补丁
目录 1.当前DB环境2.下载补丁包和opatch的升级包3.检查OPatch的版本4.检查补丁是否冲突5.关闭数据库实例,关闭监听6.应用patch7.加载变化的SQL到数据库8.ORACLE升级补丁查询 oracle19.3升级补丁到19.18 1.当前DB环境 [oraclelocalhost ~]$ cat /etc/redhat-releas…...
![](https://img-blog.csdnimg.cn/fa53e33f57ee4d46ac3cb4b3e0a4806f.png)
力扣初级算法(二分查找)
力扣初级算法(二分法): 每日一算法:二分法查找 学习内容: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 2.二分查找流程&…...
![](https://img-blog.csdnimg.cn/2f226454f7ad401aa47ce88e80657341.png#pic_center)
探索未来:直播实时美颜SDK在增强现实(AR)直播中的前景
在AR直播中,观众可以与虚拟元素实时互动,为用户带来更加丰富、沉浸式的体验。那么,直播美颜SDK在AR中有哪些应用呢?下文小编将于大家一同探讨美颜SDK与AR有哪些关联。 一、AR直播与直播实时美颜SDK的结合 增强现实技术在直播中…...
![](https://www.ngui.cc/images/no-images.jpg)
SQL 单行子查询 、多行子查询、单行函数、聚合函数 IN 、ANY 、SOME 、ALL
单行子查询 子查询结果是 一个列一行记录 select a,b,c from table where a >(select avg(xx) from table ) 还支持这种写法,这种比较少见 select a,b,c from table where (a ,b)(select xx,xxx from table where col‘000’ )…...
![](https://img-blog.csdnimg.cn/56dc17969c82401980f62d98cf357b7e.png)
【第一阶段】kotlin的range表达式
range:范围:从哪里到哪里的意思 in:表示在 !in:表示不在 … :表示range表达式 代码示例: fun main() {var num:Int20if(num in 0..9){println("差劲")}else if(num in 10..59){println("不及格")}else if(num in 60..89…...
![](https://www.ngui.cc/images/no-images.jpg)
网络防御(5)
一、结合以下问题对当天内容进行总结 1. 什么是恶意软件? 2. 恶意软件有哪些特征? 3. 恶意软件的可分为那几类? 4. 恶意软件的免杀技术有哪些? 5. 反病毒技术有哪些? 6. 反病毒网关的工作原理是什么? 7. 反…...
![](https://img-blog.csdnimg.cn/dcfa389929164ad2ba40ad0c6ececece.png)
gradle 命令行单元测试执行问题
文章目录 问题:命令行 执行失败最终解决方案(1)ADB命令(2)Java 环境配置 问题:命令行 执行失败 命令行 执行测试命令 无法使用(之前还能用的。没有任何改动,又不能用了) …...
![](https://img-blog.csdnimg.cn/b41d22c604f4426293524faa84aa40cd.png)
剑指Offer12.矩阵中的路径 C++
1、题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平…...
![](https://img-blog.csdnimg.cn/img_convert/15815753e5c22208b0f889b6bd4dbb34.jpeg)
金鸣识别将无表格线的图片转为excel的几个常用方案
我们知道,金鸣识别要将横竖线齐全的表格图片转为excel非常简单,但要是表格线不齐全甚至没有表格线的图片呢?这就没那么容易了,在识别这类图片时,我们一般会使用以下的一种或多种方法进行处理: 1. 基于布局…...
![](https://img-blog.csdnimg.cn/39793543a03a498ba5e8fc66217f499d.png)
刚刚更新win11,记事本消失怎么处理?你需要注意些什么?
记录window11的bug hello,我是小索奇 昨天索奇从window10更新到了window11,由于版本不兼容卸载了虚拟机,这是第一个令脑壳大的,算了,还是更新吧,了解了解win11的生态,后期重新装虚拟机 第一个可…...
![](https://img-blog.csdnimg.cn/28ca5bdabbec4d5595d4d8b6e1916f09.jpeg)
【QT】 QTabWidgetQTabBar控件样式设计(QSS)
很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享QT控件QTabWidget&QTabBar的样式设计,介绍两者可以自定义的内容,以及如何定义,希望对各位小伙伴有所帮助! 感谢各位小伙伴…...
![](https://img-blog.csdnimg.cn/5620ebfcff8a47a5b2d454a789d02efc.png)
【个人记录】CentOS7 编译安装最新版本Git
说明 使用yum install git安装的git版本是1.8,并不是最新版本,使用gitlab-runner托管时候会拉项目失败,这里使用编译源码方式安装最新版本的git。 基础环境安装 echo "nameserver 8.8.8.8" >> /etc/resolv.conf curl -o /…...
![](https://img-blog.csdnimg.cn/665aa0effaf545399fd653606f8d56f4.png)
【Linux】计算机网络的背景和协议分层
文章目录 网络发展协议何为协议网络协议协议分层OSI七层模型TCP/IP五层模型(四层) 基本通信流程mac地址和ip地址网络通信本质 网络发展 从一开始计算机作为一台台单机使用,到现在网络飞速发展,从局域网Lan建立起局域网࿰…...
![](https://img-blog.csdnimg.cn/cc5060e6d14d4f9884a2b16a3d6acdc8.png)
代理模式:静态代理+JDK/CGLIB 动态代理
文章目录 1. 代理模式2. 静态代理3. 动态代理3.1. JDK 动态代理机制3.1.1. 介绍 3.1.2. JDK 动态代理类使用步骤3.1.3. 代码示例3.2. CGLIB 动态代理机制3.2.1. 介绍3.2.2. CGLIB 动态代理类使用步骤3.2.3. 代码示例 3.3. JDK 动态代理和 CGLIB 动态代理对比 4. 静态代理和动态…...
![](https://img-blog.csdnimg.cn/img_convert/e7cd95fd2b8647946b49def968822bd3.png)
gps虚拟定位 AnyGo for Mac 中文
要在AnyGo中进行Gps位置模拟,您只需连接您的设备并选择“位置模拟”选项,然后输入您想要模拟的位置信息即可。通过使用AnyGo,您可以轻松地模拟任何地方的位置,而无需实际去到那个地方。 借助AnyGo,您可以通过在地图上…...
![](https://img-blog.csdnimg.cn/e4a65da37aa649b3b0192b5aaa9781d5.jpeg#pic_center)
LLM reasoners 入门实验 24点游戏
LLM reasoners Ber666/llm-reasoners 实验过程 实验样例24games,examples/tot_game24,在inference.py中配置使用代理和open ai的api key。 首先安装依赖 git clone https://github.com/Ber666/llm-reasoners cd llm-reasoners pip install -e .然后…...
![](https://www.ngui.cc/images/no-images.jpg)
【LeetCode 算法】Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值-前缀和
文章目录 Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值问题描述:分析代码前缀和前缀和 Tag Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值 问题描述: 给你一个整数数组 nums 。一个子数组 [ n u m s l ,…...
![](/images/no-images.jpg)
知名企业公司/百度seo推广
0 写在前面 前几天写了《从C#到Python —— 谈谈我学习Python一周来的体会 》 这篇文章,反响还不错,对我这样的Freshman是个很大的鼓舞。应博友的提议,从今天开始写一个系列的连载文章《从C#到Python》。一方面是整 理下我自己学习Python的…...
![](https://s3.51cto.com/wyfs02/M00/23/1A/wKiom1MxkUnwC96IAAA6BmnnG4w046.jpg)
地图网站怎么做/哈尔滨seo关键词排名
1.samba简介samba是一个开源并且免费的软件,它主要基于SMB和CIFS和其他主机进行通信,可实现跨平台共享数据、共享打印机等功能。2.samba常见应用samba最初发展的主要目的就是用来沟通Windows和Unix Like这两个不同的操作系统平台,那么它都有哪…...
![](/images/no-images.jpg)
住房各城乡建设网站/泰安网站seo推广
一、源码特点 1、采用典型的三层架构进行开发、模板分离,支持生成静态 伪静态.、购物车、登陆验证、divcss、js等技术二、功能介绍 1、本源码是一个超市在线购物商城源码,该网上商城是给超市便利店等零售批发实体店定制的网上商城,主要针对周边配送&…...
![](https://img-blog.csdnimg.cn/a40a58a79c444518bfc2d0a6be0b0731.png)
wordpress 数据库导出/分享几个x站好用的关键词
1.安装依赖插件 一键安装四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.安装nginx 进入/usr/local/java 目录,如果不存在java目录,则创建. #下载安装包 wget http://nginx.org/download/nginx-1.9.9.tar.gz 解压 tar -zxvf nginx-1.…...
![](/images/no-images.jpg)
wix和wordpress/网店培训教程
在项目开发过程中遇到word、pdf转图片 方便预览的问题,经过多次选择 最后用openoffice Apache_OpenOffice_4.1.4_Linux_x86-64_install-rpm_zh-CN.tar.gz 官网下载太慢 下面是百度云盘链接 链接:https://pan.baidu.com/s/1mOLh4NEnmTX7AEciRLVVpQ 提取码…...
![](/images/no-images.jpg)
政府门户网站需求分析/今日全国最新疫情通报
求一亿以内的回文素(质)数 先求质数再判断回文,效率低下;所以先构造回文数,再判断质数。 偶数位的回文数都能被11整除。所以,偶数位的回文数除了11都是合数。 观察偶数位的回文数,提取所有奇数…...