知识碎片

JS 部分

基本类型

对于类型的进一步判断, 可以参考js类型判断

# typeof

undefined – 未定义
object – 对象或null

# null类型

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值。这样一来,只要直接检查 null 值就可以知道相应的变了是否已经保存一个对象的引用。


# with使用

延长作用域链
例子1:

function buildUrl(){var qs = "?debug=true";with(location){var url = href + qs;}return url;
}

例子2:(对对象的访问提供便利,但是不能增加属性)

function Lakers() { this.name = "kobe bryant"; this.age = "28"; this.gender = "boy"; 
} 
var people=new Lakers(); 
with(people) 
{ var str = "姓名: " + name + "<br>"; str += "年龄:" + age + "<br>"; str += "性别:" + gender; 
} 

执行结果如下

姓名: kobe bryant
年龄:28
性别:boy

注意: 使用with / eval,引擎会无法优化,从而导致性能下降,慎用 (参考:你不知道的Javascript上卷)。

# 数组降维

将数组**[** [1, 2, 3], [4, 5], 6 **]**降为一维数组 [ 1, 2, 3, 4, 5, 6 ], 有一个很巧妙的方法

var newArr = [].concat.apply([], arr);

这里仅对 concat方法做一个简单的解释,concat适用于数组拼接, 不改变原数组,返回新的数组,参数接受普通值或者数组:

var arr = [1, 2, 3];console.log(arr.concat(4));  // [1, 2, 3, 4]
console.log(arr.concat(4, 5)); // [1, 2, 3, 4, 5]
console.log(arr.concat([4]));  // [1, 2, 3, 4]
console.log(arr.concat([4, 5]));  // [1, 2, 3, 4, 5]console.log(arr.concat([[4]])); //[1, 2, 3, [4]]

值得注意的一点是超二维数组需要递归降维
而重点是apply的用法,apply通常用于和call的对比*(见高级程序设计的5.5.5 函数属性与方法)*,其中描述有:apply()接受两个参数:一个是在其中运行函数的作用域,另一个是参数数组。书中给出的例子:

function sum (num1, num2) {return num1 + num2;
}function callSum(num1, num2) {console.log(sum.apply(this, [num1, num2]));  //传入数组
}callSum(10, 20); //30

从这个例子可以看出apply将传入的数组拆开分别传给前面的函数,所以

[].concat.apply([], [ [1, 2, 3], [4, 5], 6])//可以理解为:
[].concat([1,2,3], [4,5], 6)

# 移动端和PC端判断

有时候我们为了更好的适配移动端和PC端,采用两套架构开发,这时候就需要针对不同的平台加载不同的网站。
可以通过如下方式判断:

var isMobile = /Android|webOS|iPhone|iPad|BlackBerry/i.test(navigator.userAgent) ? true : false;

CSS 部分

# table元素内部强制不换行,并滚动

	//强制不换行white-space: nowrap;// display: table会导致内部不滚动display: block;overflow-x: auto;

# display: inline-block 莫名其妙出现的样式差

有关于使用inline-block来代替float的讨论也蛮多的,最常说的就是使用inline-block来代替float进行布局,或者使用inline-block来实现元素的居中效果。前面《CSS3制作的分页导航》一文中就是使用的inline-block制作的居中效果,不过留下了一上问题,就是使用inline-block的元素之间会存在“4px”的空白间距。
原文: https://www.w3cplus.com/css/fighting-the-space-between-inline-block-elements © w3cplus.com

可以通过设置父元素font-size为0来解决,但是safri浏览器问题仍然存在。
可以用 float 替换 Inline-block,但是记得清除浮动

# 清除浮动

.clearfix:after{display:block;clear:both;content:"";visibility:hidden;height:0;
}
.clearfix{ zoom:1 }

# 其他

user-select: none; // 文本不被选中
outline: none; //去掉输入框 

项目中遇到的问题

  1. jquery animate动画执行中,修改样式失效

    修改样式的时候,应该先将该元素动画停止,用stop()方法,然后修改样式。

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

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

相关文章

梦之所寄,行之所为——地狱之门就此洞开(读梦断代码有感)

在博客园的精华区看到一篇名为“程序员&#xff0c;对自己好一点”的文章&#xff0c;颇有感触。我只是初涉这个圈子的一个小小的实习生&#xff0c;却也觉得对于程序员而言&#xff1a;累&#xff0c;加班工作&#xff0c;吃青春饭…。为什么要把自己弄得如此狼狈&#xff1f;…

MPLS-L3×××中的公网访问

1.在站点内配置一个代理服务器拥有公网IP做NAT&#xff0c;之后网关写到CE&#xff0c;CE上配置默认路由指向PE&#xff0c;之后PE上做静态的公网跳出路由&#xff0c;即在静态路由的下以跳写public关键字。之后做回程路由跳回&#xff0c;下一跳写站点地址即可&#xff0c;但是…

Vuetable-2使用全纪录

vuetable-2介绍 vuetable2是一款基于vuejs开发的table组件&#xff0c;支持表格加载和翻页、翻页信息展示的组件官方github | 官方API学习 | Tutorialvuetable-2包括三个部分&#xff1a; vuetablevuetablePagination vuetablePaginationDropdownvuetablePaginationMixinvue…

OCP-052考试题库汇总(26)-CUUG内部解答版

Which three of these must be accessible to keep a database open? A)Control file. B)All members of a redo log group. C)SYSTEM tablespace. D)SYSAUX tablespace. E)spfile Answer: ABC 赵&#xff1a; 1 nomount&#xff1a;实例已经启动&#xff0c;进程和内存已经分…

QT_C++

QT_C C 与 C 区别&#xff1a;  面向过程&#xff1a;吃&#xff08;狗&#xff0c;屎&#xff09; 面向对象&#xff1a;狗. 吃&#xff08;屎&#xff09; ^ . ^ 博客&#xff1a;https://www.runoob.com/cplusplus/cpp-tutorial.html 插入符&#xff1a;<< 控制符…

使用Nodejs搭建server

使用Nodejs搭建server&#xff08;MySQL MongoDB&#xff09; 环境 文件 版本号nodejs8.10.0mysql2.16.0express-generator4.16.0pm23.0.3ejs2.6.1 - 准备工作 安装上述环境依赖使用express-cli快速创建服务&#xff0c;资料 express project-name将express的默认引擎jade调…

静态路由的实现

在路由器A上做如下配置&#xff1a;router(config)#hostname AA(config)#interface f0/0A(config-if)#ip address 192.168.1.1 255.255.255.0 A(config-if)#no shutdownA(config)#interface f0/1A(config-if)#ip address 192.168.2.1 255.255.255.0 A(config-if)#no shutdownA(…

2019-08-09 纪中NOIP模拟赛B组

T1 [JZOJ1035] 粉刷匠 题目描述 windy有N条木板需要被粉刷。 每条木板被分为M个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷&#xff0c;只能选择一条木板上一段连续的格子&#xff0c;然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次&#x…

vue3实现打字机的效果

前言&#xff1a; vue3项目中实现打字机的效果。 实现效果&#xff1a; 实现步骤&#xff1a; 1、安装插件 npm i vue3typed 2、main.js中配置 import vuetyped from vue3typedconst app createApp(App) // 挂载打字机的全局方法 app.use(vuetyped) 3、界面使用 <vuet…

易中天与单田芳的区别在哪儿

单田芳先生是中国著名的评书演员&#xff0c;我非常喜欢听单田芒的评书&#xff0c;在那个没有电视机的时代&#xff0c;收听单田芳先生的评书对我来说就是一种最大的人生享受。所以&#xff0c;“单田芳”这三个字早就镌刻在我的脑海之中。一直到今天我还深深地敬仰着这位全国…

Express + Node 爬取网站数据

前言 因为自己写的demo需要历史天气的统计数据&#xff0c;但是国内很难找到免费的api接口&#xff0c;很多都需要付费和审核。而国外的网站虽然免费但需要提前知道观测站&#xff0c;城市id等信息。所以就有了这么一篇文章的诞生。 准备工作 库 作用superagent发送请求supera…

ajax省级联动 回发或回调参数无效

今天在做项目有个修改内容的&#xff0c;有个地方用到省级联动&#xff0c;现在一般都用ajax&#xff0c;很少用auto什么的那个属性了 想想ajax做省级联动也很简单&#xff0c;就开始做了&#xff0c;没想到在修改的时候提示回发或回调参数无效&#xff0c;然后去网上找了好久 …

虚拟局域网(VLAN)的管理

什么是虚拟局域网&#xff1f;虚拟局域网是一种用逻辑的定义方法&#xff0c;把两个或更多的连在交换网络上的终端规划在一起。 这种逻辑定义方法可以延伸到多个交换机。被规划在一起的终端&#xff0c;可以通过几种网络设置来规划。好像任何一种网络技术一样&#xff0c;了解…

学习antd-design-pro

学习使用react-antd-pro框架(一篇学习中的问题思考记录) 框架介绍 react-antd-pro 大体上等于 react antd pro。官网对于相关技术栈的描述如下&#xff1a; 我们的技术栈基于 ES2015、React、UmiJS、dva、g2 和 antd UmiJS: 可插拔的企业级 react 应用框架 dva: React and r…

SqlZoo.net习题答案:The Join 【Movie】

习题地址&#xff1a;http://sqlzoo.net/3.htm 表结构&#xff1a;  movie(id, title, yr, director)      actor(id, name)      casting(movieid, actorid, ord) 1b.Give year of Citizen Kane. select yr from movie where title Citizen Kane 1c.List all …

汉语编程++

没想到汉语编程又有人开始网上对骂了。一方指另一方骗人&#xff0c;一方吹自已伟大。今天群里头有人又把它翻出来了&#xff0c;刚好无聊&#xff0c;也就发明了一个汉语编程语言&#xff0c;集成到visual studio 2005的IDE中&#xff0c;名字就叫汉语编程&#xff0c;欢迎同样…

hightopo学习系列:hightopo介绍(一)

起因 新的软件主管来公司以后&#xff0c;有整整2周的时间没有搭理前端开发。就在这周一快下班的时候&#xff0c;突然和我说话了。问了我一些以前用的图形库&#xff0c;并让我开始了解hightopo。甩给了我一个全拼&#xff0c;就拂袖而去&#xff0c;留下一脸懵逼的我。 没办…

mongo指令

use admin db.runCommand({logRotate:1}) show dbs; db.currentOp(); db.serverStatus().connections db.killOp(26593769); use adbname db.tblname.ensureIndex({"sendtime":1}) db.tblname.getIndex() 转载于:https://www.cnblogs.com/ccgblog/p/8427972.html

女人,向《奋斗》中的夏琳米莱们学习什么

被称为赵宝刚导演的转型之作电视连续剧《奋斗》&#xff0c;看得我有些意犹未尽。据说佟大为与马伊俐都是本色表演&#xff0c;但是我却更喜欢剧中米莱的角色。 刚开始看《奋斗》的时候&#xff0c;以为夏琳是许晴演的呢&#xff0c;从长相性格表情连发型都像&#xff0c;像缩小…

vue项目积累

工作记录 1.修饰符及其使用 最近项目上看到这样的代码&#xff1a; child组件隐藏模态框触发以下事件 closeHandler () {this.$emit(update:open, false)},查阅资料发现&#xff0c;这是以修饰符的方式实现了“双向绑定”&#xff0c;避免了真正的双向绑定会带来维护上的问题。…