strip

JavaScript中如何实现输出

那年仲夏 提交于 2020-08-10 02:32:39
JavaScript 语言中没有类似于 print() 这样的打印或输出函数。那么 JavaScript 要如何显示数据呢?下面我们来讲一下 JavaScript 中几种用来显示数据的方式。 window.alert() 第一种是使用 window.alert() 来弹出警告框,这很简单,例如我们想要显示“欢迎来到侠课岛”,我们可以像下面这样写代码,直接在 alert() 的小括号中加上要输出的内容。 示例: 下面代码中输出的内容是字符串,所以我们加上了双引号,如果输出数字则不用加: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS_侠课岛(9xkd.com)</title> </head> <body> <script> window.alert("欢迎来到侠课岛"); </script> </body> </html> 浏览器中截图如下: 这样一句简单的代码就可以实现弹出一个弹出层。且 alert() 函数中除了可以直接输出内容,还可以运算,例如下面这句代码最终弹出层显示结果为300: window.alert(100 + 200); 浏览器中截图如下所示: 这里我们注意一下,JavaScript 代码是写在 HTML 页面中的 <script> 标签中的。或者也可以但是分离 js 代码,将

在JavaScript中从字符串中删除所有非数字字符

冷暖自知 提交于 2020-08-10 02:27:47
问题: Consider a non-DOM scenario where you'd want to remove all non-numeric characters from a string using JavaScript/ECMAScript. 考虑一个非DOM场景,您希望使用JavaScript / ECMAScript从字符串中删除所有非数字字符。 Any characters that are in range 0 - 9 should be kept. 应保留 0 - 9 范围内的任何字符。 var myString = 'abc123.8<blah>'; //desired output is 1238 How would you achieve this in plain JavaScript? 你会如何在纯JavaScript中实现这一目标? Please remember this is a non-DOM scenario, so jQuery and other solutions involving browser and keypress events aren't suitable. 请记住这是一个非DOM场景,因此jQuery和其他涉及浏览器和按键事件的解决方案都不合适。 解决方案: 参考一: https://stackoom.com

iOS开发——内存优化

吃可爱长大的小学妹 提交于 2020-08-10 02:16:16
前言: 当app经过一段儿时间的迭代,往往会出现一些性能问题,这时能够协助开发解决这些性能问题也成为我们测试的重要工作。凑巧最近一段时间就一直在协助开发去进行app内存优化。这里整理了一份关于内存优化的心得分享给大家。 目的: 首先我们先要明确我们的目的,在保证程序运行流畅的前提下尽可能的优化使用内存。所以千万不要掉进为了优化而优化的陷阱。程序要先保证能运行,然后再谈良好运转。所以解决问题比较宽泛,必要的时候在交互或者运转机制上小动刀子来保证既能完成任务,程序又能正常运转,不必去对代码进行完全重构。毕竟在优化效率达到上限的时候,只能用时间换空间了。 1. 用ARC管理内存 ARC(Automatic ReferenceCounting, 自动引用计数),它避免了最常见的由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动管理了。编写代码的时候很容易忘掉结尾的release。而ARC会自动在底层为你做这些工作。除了帮你避免内存泄露,ARC还可以帮你提高性能,它能保证释放掉不再需要的对象的内存。 2. 在正确的地方使用 reuseIdentifier 一个开发中常见的错误就是没有给UITableViewCells, UICollectionViewCells设置正确的reuseIdentifier。 为了性能最优化,table

tensorflow 2剪枝(tensorflow_model_optimization)API

时光总嘲笑我的痴心妄想 提交于 2020-08-10 02:16:01
找tf关于Pruning和quantization的用例较少,正好在做这方面工作,就搬一搬一些官方文档的应用。 下面的代码主要是结合一个官方Mnist的示例和guide文档看看tf的API中是怎么做pruning这一步优化的。 tensorflow/model-optimization--comprehensive_guide pruning_with_keras 总的思路是: 建baseline model → 加入剪枝操作→ 对比模型大小、acc等变化 其中关注其中如何自定义自己的pruning case和后续quantization等 目录 1.导入一些依赖库,后面似乎没用到tensorboard,暂时注释掉 2.导入Mnist数据集,作简单规整 3.建立一个Baseline模型,并保存权重,方便后续比较性能 4.对整个模型直接magnitude,建立剪枝模型,顺便看看模型前后变化 5.选定某个层进行magnitude(这里选择Dense layer),建立剪枝模型,看看模型变化 6.自定义剪枝操作 7.Tensorboard 可视化 8.保存模型 比较精度、模型大小 提高修剪模型的准确性Tips: Common mistake: import tempfile import os import zipfile import tensorflow as tf import

HTML5 给图形绘制阴影

戏子无情 提交于 2020-08-09 21:20:44
在 HTML5 中,我们除了上一节讲过的可以对图形设置平移、旋转、缩放,还可以给图形添加阴影效果。添加阴影的时候只需要利用图形上下文对象的几个关于阴影绘制的属性就可以实现啦。 图形阴影绘制的属性 属性 描述 shadowOffsetX 阴影的横向位移量 shadowOffsetY 阴影的纵向位移量 shadowBlur 阴影的模糊范围 shadowColor 阴影的颜色 shadowOffsetX 属性和 shadowOffsetY 属性分别用于设置阴影在 X 轴和 Y 轴的延伸距离,属性值为正值表示向下或向右延伸,负值表示向上或向左延伸。 shadowBlur 属性用于设置阴影的模糊度,当我们不希望图形的阴影太清晰时,可以使用这个属性。属性值为必须为正值,否则无效哟,一般设定在 0到10 之间。 shadowColor 属性值用于设置阴影的颜色,属性值可以为任意标准的 CSS 颜色值,默认颜色为黑色。 给图形绘制阴影 例如给一个粉色的矩形绘制阴影。 示例: 绘制向右偏移 10 像素的阴影: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>HTML5学习(9xkd.com)</title> </head> <body> <canvas id="mycanvas" width="300" height="200"

Web探索之旅 | 第一部分:什么是Web?

我们两清 提交于 2020-08-09 17:17:27
>作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。 转载请注明出处。 原文: https://www.jianshu.com/p/29f2ea410f8d > 《Web探索之旅》 全系列 内容简介 什么是 Web? Web,服务和云 Web 的诞生史 总结 第二部分第一课预告 1. 什么是 Web? 什么是 Web 呢? 这个问题不容易回答。 Web 这个英语单词有好几个意思:“网,蜘蛛网,网状物;万维网;织物;圈套”。 我们也经常用到它的合成词,例如 Webpage(网页。是 Web 和 page(page 表示“页面”)的合成),Website(网站。是 Web 和 site(site 表示“站点”)的合成)。 一般在 IT (Information Technology 的缩写,表示“信息技术”)领域,Web 被翻译成“网络”,或者很多时候我们不翻译,就直接用 Web 这个词。因为 network(或简称 net)这个单词也有“网络”的意思。但是 Web 和 network 是有区别的。 那么到底什么是 Web 呢? 在 IT 领域, Web 是 World Wide Web(万维网,一般简写为 WWW)的简称。World 表示“世界”,Wide 表示“广阔的”,Web就是“网”。 WWW 可以让 Web 客户端(例如我们常用的浏览器,如 Chrome

springboot 热部署导致类型转换异常

夙愿已清 提交于 2020-08-09 15:53:54
原因: 1. JVM判断两个类对象是否相同的依据:一是类全称;一个是类加载器.(具体原理请自行百度,在此不再赘述)。 2. 大家都知道虚拟机的默认类加载机制是通过双亲委派实现的。springboot为了实现程序动态性(比如:代码热替换、模块热部署等,白话讲就是类文件修改后容器不重启),“破坏或牺牲” 了双亲委派模型。springboot通过强行干预-- “截获”了用户自定义类的加载(由jvm的加载器AppClassLoader变为springboot自定义的加载器RestartClassLoader,一旦发现类路径下有文件的修改,springboot中的spring-boot-devtools模块会立马丢弃原来的类文件及类加载器,重新生成新的类加载器来加载新的类文件,从而实现热部署。比较流行的OSGI也能实现热部署)。 3、 当对象被序列化到缓存里时,当前应用的类加载器是C1,当你改变了一些代码或者配置文件的时候,DevTools 工具将会自动重新启动这个容器,并且创建一个新的类加载器 C2. 这时候调用这个具有缓存的方法时,缓存管理将会从缓存里找到该条缓存记录并进行反序列化操作。如果缓存库不考虑上下文的话,也就是没注意到类加载器的变化时,该对象将会有错误的类加载器。即:类加载器不一致所导致。 方案一、解决方案就是在resources目录下面创建META-INF文件夹

C语言探索之旅 | 第二部分第一课:模块化编程

若如初见. 提交于 2020-08-09 05:51:11
>作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。 转载请注明出处。 原文: https://www.jianshu.com/p/2070cfd368ca > 《C语言探索之旅》 全系列 内容简介 前言 函数原型 头文件 分开编译 变量和函数的作用范围 总结 第二部分第二课预告 1. 前言 上一课是 C语言探索之旅 | 第一部分练习题 。 话说上一课是第一部分最后一课,现在开始第二部分的探索之旅! 在这一部分中,我们会学习 C语言的高级技术。这一部分内容将是一座高峰,会挺难的,但是我们一起翻越。 俗语说得好:“一口是吃不成一个胖子的。” 但是一小口一小口,慢慢吃,还是能吃成胖子的嘛。所以要细水长流,肥油慢积,一路上有你(“油腻”)~ 一旦你跟着我们的课程一直学到这一部分的结束,你将会掌握 C语言的核心技术,也可以理解大部分 C语言写的程序了。 到目前为止我们的程序都只是在一个 main.c 文件里捣腾,因为我们的程序还很短小,这也足够了。 但如果之后你的程序有了十多个函数,甚至上百个函数,那么你就会感到全部放在一个 main.c 文件里是多么拥挤和混乱。 正因为如此,计算机科学家才想出了 模块化编程 。原则很简单:与其把所有源代码都放在一个 main.c 当中,我们将把它们合理地分割,放到不同的文件里面。 2. 函数原型 到目前为止,写自定义函数的时候

JavaScript 变量

无人久伴 提交于 2020-08-09 05:39:24
JavaScript 中变量是用于存储数据值的容器,举个例子,例如 var a = 1 , 其中 a 就是一个变量,1是存入变量的值,也叫做字面量。 在实际应用中,变量很频繁的被使用,所以我们接下来好好学习一下变量。 变量声明 我们可以使用关键字 var 来声明变量,变量定义好后可以给它赋值,给变量赋值时可以使用等号 = 。 当然为了方便我们也可以在声明变量的同时直接给变量赋值,这样更方便,使用 var 关键字声明变量后,可以对变量进行修改。 注意哟,如果声明一个变量之后,不给这个变量赋值,那么这个变量是空的(其值实际上是 undefined)。 示例: 例如下面的我们定义了变量名为 a、b 的变量,并向其赋值: <script> var a; // 定义变量 a = 10 // 给变量赋值 var b = 35; // 定义变量并赋值 </script> 从上面代码我们可以看出变量 a 储存的值为10,变量 b 储存的值为 35。而变量 a 、 b 是我们给变量定义的变量名。 这很简单对不对,现在你已经学会使用关键字 var 声明变量了吗?假设现有一个变量名为 my_name ,请你将自己的名字赋值给这个变量吧。 变量的命名规则 我们定义变量的时候,是不是随便我们怎么定义呢?给变量命名也是有规则的,我们来看一下: 变量名区分大小写,例如 Test 和 test , myName

Python爬虫获取QQ空间信息(上)

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-09 04:14:09
开发工具 **Python版本:**3.6.4 相关模块: requests模块; selenium模块; lxml模块; 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块,并前往: http://npm.taobao.org/mirrors/chromedriver/ 下载与自己使用的Chrome浏览器版本对应的驱动文件,下载完毕后将 chromedriver.exe所在文件夹添加到环境变量中 即可。 相关文件 关注公众号“ python工程狮 ”回复 ‘ qq上 ’获取。 原理简介 本文主要解决QQ空间的登录问题。 其主要思路为: 利用selenium模拟登录QQ空间从而获取登录QQ空间所需的cookie值,这样就可以利用requests模块来抓取QQ空间的数据了。 为什么这么绕? selenium好久不用,写起来太慢了。而且它本身速度和资源占用等问题一直为大家所诟病。 And 省略无数条理由。 一些细节: (1)第一次获取cookie之后将其保存下来,下次再登录之前先试试保存的cookie有没有用,有用直接使用就可以了,这样可以进一步节省时间。 (2)抓包分析过程中,可以发现抓取QQ空间数据所需请求的链接都包含 g_tk 这个参数,这个参数实际上是使用cookie中的 skey 参数计算获得的,懒得打公式了