js中零散知识点总结

1、想要准确判断一个变量是不是数组类型,不能使用typeof arr,因为返回结果是object,应该使用arr instanceof Array,根据返回结果是true还是false进行判断。

2、使用reduce处理数组的时候,因为每次迭代的时候都需要使用上一次计算的结果,所以一定记得将每次计算的结果进行return,否则计算是无效的

3.js中return false的意思是函数终止并返回false,意思就是return false以后的代码都不会执行,如果声明变量接收返回值,那变量就是false;return true的意思是函数终止并返回true,意思就是return true以后的代码都不会执行,如果声明变量接收返回值,那变量就是true

4、JavaScript中return与return false区别:return 的返回的是undefined,而 return false 返回的就是false,多数情况下两者的效果是一样的,因为undefined等价于false,但如果软件要求严格检测返回值的类别(比如要求必须是布尔值true和false),那就不能混用了

5、js中Math.max用法Math.max(value1,value2),然后返回其中的最大值,当然了,比较的个数没有限制,这里只写两个

6、word-wrap与word-break的区别,以及无效情况:
(1)word-break:break-all 例如div宽400px,它的内容就会到400px自动换行,如果该行末端有个英文单词很长(congratulation等),它会把单词截断,变成该行末端为conra(congratulation的前端部分),下一行为tulation(conguatulation)的后端部分了。

(2)word-wrap:break-word 例子与上面一样,但区别就是它会把congratulation整个单词看成一个整体,如果该行末端宽度不够显示整个单词,它会自动把整个单词放到下一行,而不会把单词截断掉的。还有就是如果单词太长的话也会进行分割。

我遇到一个情况,就是我设置了:

word-break:break-all 或者word-wrap:break-word都无效,字符串不会自动换行。

经过查证,发现原因会有两个:1、word-wrap对行内元素是没有效果的;2、一般情况下,元素拥有默认的white-space:normal(自动换行,不换行是white-space:nowrap),可能是元素中设置的white-space是norwrap导致,无法换行。所以需要white-space:normal;word-break:break-all;这样问题就解决了。white-space 对程序中的空白进行处理,默认是normal (浏览器会对空白进行忽略);(3)对table 的td 标签下的元素设置word-wrap:word-break是没有效果的。

7、slice和splice区别:

const arr=[1,2,3,4,5,6,7];
const result=arr.slice(2,4);
console.log(arr);//[1,2,3,4,5,6,7]
console.log(result);//[3, 4]
const arr2=[7,6,5,4,3,2,1];
const result2=arr2.splice(2,4,100,200,300);
console.log(result2);//[5, 4, 3, 2]
console.log(arr2)//[7, 6, 100, 200, 300, 1]

slice表示截取,slice(start,end)不改变原数组,返回新数组。

splice表示删除,splice(start,length,item),会改变原数组,从某个位置开始删除多个元素,并可以插入新的元素。

8、设计图片作为背景铺满屏幕:

body{
  background-image: url(../img/map.png);
  background-position: center center;
  background-size: cover;
  background-attachment: fixed;
}

9、如何解决npm下载慢的问题:
(1)使用cnpm:使用阿里定制的 cnpm 命令行工具代替默认的 npm,输入下面代码进行安装:$ npm install -g cnpm --registry=https://registry.npm.taobao.org以后安装插件只需要使用cnpm intall即可。

(2)仍然使用npm,只进行换源:输入以下命令:npm config set registry https://registry.npm.taobao.org 再输入:npm config list可以看到,已经换源了

10、elementUI中el-scrollbar的使用:
前端UI界面设计的时候经常会出现滚动条,但是浏览器默认的滚动条一般比较难看,不推荐使用。elementUI中有一个隐藏的组件el-scrollbar,在官方的教程中并没有出现,但是在实际使用中比较不错,这里记录一下使用方法以及使用中遇到的坑。

(1)使用方法:将会出现滚动条的部分直接放进组件el-scrollbar即可,然后将标签的height属性设置为100%即可。

(2)注意事项:设置完之后查看效果会发现出现一个横向的滚动条,此时需要添加以下css样式即可,但是一定要注意不要在scoped私有变量中进行添加,而是应该在app.vue 或者公共的css中进行添加,否则是没有效果的。

.el-scrollbar__wrap{
  overflow-x: hidden;
}

11、angular中渲染对象数组:ng-repeat="value in item track by $index"

12、获取表单 select域的选择部分的文本

//HTML部分
<form name="formA">
  <select name="a" size="1" id=”obj”>
    <option value="a">1</option>
    <option value="b">2</option>
    <option value="c">3</option>
  </select>
</form> 
//js部分
const obj = document.getElementById('obj');
const result = obj.options[obj.selectedIndex].text;
console.log(result);

13、加号优先级高于 三目运算。低于括号。所以以下代码输出define

//假设val已经声明,可定义为任何值
console.log('Value is ' + (val != '0') ? 'define' : 'undefine');

14、append() 和appendTo()方法在被选元素的结尾(仍然在内部)插入指定内容

15、通过原生的js如何禁用id为 button1的按钮button:

//方法1
document.getElementById("button1").disabled = true;
//方法2
document.getElementById("button1").setAttribute(“disabled”,”true”);

16、给网页添加javascript的方式有:
1)使用script标签,将javascript代码写到<script></script>之间
2)添加外部javascript文件
3)使用行内javascript
4)使用@import引入javascript文件(错误选项)

17、判断obj对象是否具有val属性:

var obj={}
……
obj.hasOwnProperty("val")

18、准备XMLHttpRequest对象时,在send()前需要调用open ()方法

19、angularjs1中服务的正确写法是:ng-service

20、typeof Date.now() 的值是number,原因:Date.now() 方法返回自1970年1月1日 00:00:00 UTC到当前时间的毫秒数

21、如何规避javascript多人开发函数重名问题
1)可以通过命名规范,比如根据不同的开发人员实现的功能,在函数名加前缀
2)每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为是要类.函数名来调用,所以也减少了重复的可能性

22、Javascript内置的可迭代对象:Array、Map、String,注意Object不是

23、在JavaScript中 false,undefined,null,空字符串,数字0 ,数字NaN被当做假值

24、== 和 ===的区别是,==会将两边的值进行隐式类型转换,而 ===不会。undefined和null转换为Boolean类型后都为false,如果使用==会进行转换,那么undefined和null相等啦,如果使用===不会进行转换,那么undefined和null不相等

25、浏览器端的JavaScript包含ECMAScript,DOM对象以及BOM对象

26、JavaScript是一种动态类型,弱类型,基于原型,直译式的脚本语言。

27、JavaScript语言不仅可以在浏览器环境运行,也可以在node提供的服务器端的平台运行

28、 var a=[]; a[0]=1; a[1]=2; a[2]=3; a[5]=4; 请问 a.length 的值是6

29、关于函数的几种说法:
1)函数声明语法定义:function sum(num1,num2){return num1+num2}
2)函数表达式定义函数:1.var sum = function(num1,num2){return num1+num2};
3)var sum = new Function("num1","num2","return num1+num2");Function构造函数可以接受任意数量的参数,但最后一个参数始终被看成函数体,注意函数表达式定义函数的方法与声明其他变量时一样需要加分号。

//函数声明
function sum(a,b){
  return a+b
}
//函数表达式
var sum = function(a,b){
  return a+b
}

30、数据类型转换
1)没有内容就是undefined,这个就是false
2)0就是false,1是true
3)null跟undefined一样,都是false
4)字符串里面有内容的话才是true,没有内容就是false
5)NaN是一种数值类型,已经是false了,只是为了让程序继续往下面走
其他解析: 数值只要不是0,都是true 对象object永远都是true

31、如果需要匹配包含文本的元素,应该使用contains()方法

32、ES5中,forEach(), filter(), reduce(), every() 和some()都会跳过空位,map()也会跳过空位,但会保留这个值,join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串,ES6 中都会将空位当做undefined

33、全局定义的函数和变量都是挂载到window对象上面的,比如undefined是window的一个全局变量,所以undefined in window 的返回值是true

34、判断对象是否具有某个属性或者是数组是否具有某个索引值可以使用in操作符,但是需要注意的是查看属性必须是字符串类型的,查看索引是数值类型

35、如果不给cookie设置过期时间,在浏览器会话结束时过期。

36、在 javascript 中,用于阻止默认事件的默认操作的方法是preventDefault()

37、stopPropagation() 阻止事件冒泡。 这个事件不会阻止定义在元素上的其他事件。

38、stopImmediatePropagation() 会彻底的阻止事件, 在其之后的绑定在元素上的其他监听事件都不会触发

39、preventDefault() 阻止事件的默认动作

40、Number(null)返回0

41、IIFE(立即执行函数表达式)中的this指向window

42、NOSCRIPT标签是用来定义在脚本未被执行时的替代内容,例如

<body>  
...
  ...

  <script type="text/javascript">
    <!--
    document.write("Hello World!")
    //-->
  </script><noscript>Your browser does not support JavaScript!</noscript>...
  ...
</body> 

43、angularjs1中使用指令,绑定监听是在link时。

44、'.'表示是当前目录,'..'表示是上级目录,'./'和'../'分别对应于当前目录和上级目录。

45、移动端开发过程中尽量避免使用浮动来进行页面布局,建议多采用flex布局,否则会发生各种未知的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容