浅谈javascript 中undefined、null 和 NaN,call()和apply()的区别

一、undefined、null 和 NaN

1.类型区别

javascript中有5中简单的数据类型(也称为基本数据类型),分别是:undefinednullbooleannumberString。另外还有一种复杂数据类型—–objecct,object本质上是由一组无序的名值对组成。
介于javascript是松散类型的,因此需要有一种手段来检测给定的数据类型—typeof。对于一个值使用typeof操作符后可能返回下列某个字符串:

  • “undefined”: 值未定义
  • “boolean”: 值为布尔值
  • “string”: 值为字符串
  • “number”: 值为数值
  • “object”: 值为对象或者null
  • “function”: 值为函数

主流浏览器简介

对一个web开发者来说,浏览器信息和统计数据是非常重要的。熟知他们才能更好的运用他们。

浏览器是指可以显示网页服务器或者文件系统的HTML内容,并让用户与这些文件交互的一种人间。网页浏览器主要通过HTTP协议也网页服务器交互并湖区网页,这些网页由URL制定,文件格式通常为HTML,并由MIMEHTTP协议中指明。常见的网页浏览器有:微软的Internet Explorer、Mozilla的FireFoxAppleSafari,OperaGoogle Chrome等。

Javascript获取随机数方法

研究了一下javascript关于随机数的生成,整理如下。

要输出随机数则须用到javascript的一个方法—random()random()方法属于Math对象。在javascript中,Math对象用于执行数学任务,如:

1
2
  var pi_value = Math.PI; //圆周率     
  var sqrt_value = Math.sqrt(5);// 返回5的平方根

可以看出Math对象在数学计算上是不可缺少的工具。与DateString不同,她不是对象的类,因此没有构造函数Math()。像Math.sin()这样的函数只是函数,并不是某个对象的方法。你不需要创建它,通过把Math作为对象使用即可以条用她的所有属性及方法。

用javascript判断各浏览器类型及版本

今天要在IE下测试大文件上传插件,发现项目组”前辈”们写的判断IE浏览器的的代码不管用了。

navigator.userAgent.toLowerCase().indexOf("msie") != -1;

调试代码才发现原来IE11userAgent值的格式与IE10不一样。打印出ie9,ie10,ie11三个版本的浏览器userAgent值,如下所示:

IE9:userAgent:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)    
IE10:userAgent:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)  
IE11:userAgent:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko;

解决 Permission denied(publicKey) 问题

好几个月没碰过github Pages了,一整就来事儿,花了一下午才搞定。现把问题和解决方法记录下来,以做参考。在用gitgithub服务器push代码的时候,出现了一下情况:

1
 Pushing generated _deploy website Permission denied (publickey). fatal: Could not read from remote...

折腾了一下,终于定位到问题所在了,原因是之前在本地生成githubssh key失效了,导致github服务器验证提交请求失败,进而拒绝提交代码操作。好了,定位到问题所在就好办了,接下来就是初始化SSH key就行了。

右键—–>git bath,在控制台中输入:

1
  ssh-keygen

上传插件之—-Web Uploader

最近云盘要大改版,前端采用了谷歌的AngularJS框架。大改嘛,之前云盘用插件要换的也都要换。飞哥说插件可以用但是却不能乱用,尤其是将其用于商业领域的,必须慎重加慎重,首先选选择的插件得符合相关的开原协议(如上篇),因滥用别的插件而上法庭的例子举不胜数。作为小菜的我一直都以够用,管用,好用的心态去用这些插件的,什么开原协议啊,什么版权啊之类的,不懂~大神告诉我,这个很重要,因为一旦被查出,后果很严重。。。飞哥推荐使用以MIT开源协议发布的Web Uploader作为上传插件。研究了它几天,苦恼,痛苦,桑心…

返回顶部