每天一篇javascript学习小结(基础知识)


Posted in Javascript onNovember 10, 2015

1、字符转换

var s1 = "01";
  var s2 = "1.1";
  var s3 = "z";//字母'z'无法转换为数字,所以或返回NaN
  var b = false;
  var f = 1.1;
  var o = { 
   valueOf: function() {
    return -1;
   }
  };
  
  s1 = -s1; //value becomes numeric -1
  s2 = -s2; //value becomes numeric -1.1
  s3 = -s3; //value becomes NaN
  b = -b;  //value becomes numeric 0
  f = -f;  //change to -1.1
  o = -o;  // 1 先执行对象的valueOf()方法返回-1,--1为1

o = +o;//-1 o的valueOf()值为-1,+-1还是-1

2、特殊字符运算

var result1 = 5 - true; //4 because true is converted to 1
  var result2 = NaN - 1;  //NaN NaN不是一个数字,和任何数字做任何运算都是NaN
  var result3 = 5 - 3;  //2
  var result4 = 5 - "";  //5 because "" is converted to 0
  var result5 = 5 - "2";  //3 because "2" is converted to 2
  var result6 = 5 - null; //5 because null is converted to 0

3、变量转字符串运算

var value1 = 10;
  var value2 = true;
  var value3 = null;
  var value4;//value4 没有赋值就是underfined 转换为字符串就是'underfined'
  
  alert(String(value1));  //"10"
  alert(String(value2));  //"true"
  alert(String(value3));  //"null"
  alert(String(value4));  //"undefined"

4、数字的进制转换 

var num = 10;
  alert(num.toString());  //"10"默认十进制
  alert(num.toString(2));  //"1010"二进制
  alert(num.toString(8));  //"12"八进制
  alert(num.toString(10));  //"10"十进制
  alert(num.toString(16));  //"a"十六进制

5、字符串比较运算

var result1 = 5 > 3; //true
  var result2 = 5 < 3; //false
  var result3 = "Brick" < "alphabet"; //true 字符串比较按照字母表顺序进行比较 小写字母在大写字母后面
  var result4 = "Brick".toLowerCase() < "alphabet".toLowerCase(); //false字母表顺序比较
  var result5 = "23" < "3"; //true 字符2小于字符3
  var result6 = "23" < 3; //false 此时'23'转换成23了
  var result7 = "a" < 3; //false because "a" becomes NaN 字符'a'无法转换成数字
  var result8 = NaN < 3; //false NaN 和任何数字比较,都无法转换成数字,所以一直是false
  var result9 = NaN >= 3; //false

6、字符进制转换

var num1 = parseInt("AF", 16);  //175 按照16进制输出十进制数据 10*16+15*1
  var num2 = parseInt("AF");   //NaN 没有指定进制,默认按照10进制转换,由于AF不在十进制范围,返回NaN

  alert(num1);
  alert(num2);

7、parseInt的使用

var num1 = parseInt("1234blue"); //1234
  var num2 = parseInt("");   //NaN 字符''无法转换成数字
   var num3 = parseInt("0xA");   //10 - hexadecimal 16进制的A
  var num4 = parseInt(22.5);   //22
  var num5 = parseInt("70");   //70 - decimal
  var num6 = parseInt("0xf");   //15 16进制为15

8、Number对象的使用

var num1 = Number("Hello world!"); //NaN
  var num2 = Number("");    //0 空字符串可以转换成0 这个parseInt()不一样
   var num3 = Number("000011");  //11
  var num4 = Number(true);   //1

9、NaN用法     

alert(NaN == NaN);  //false
  alert(isNaN(NaN));  //true
  alert(isNaN(10));  //false ?10 is a number
  alert(isNaN("10"));  //false ?can be converted to number 10
  alert(isNaN("blue")); //true ?cannot be converted to a number
  alert(isNaN(true));  //false ?can be converted to number 1

10、系统最大数字

var result = Number.MAX_VALUE + 1;
alert(isFinite(result)); // false

11、Infinity无穷大

alert(5 * 6);   //30
  alert(5 * NaN);   //NaN
  alert(Infinity * 0); //NaN
  alert(Infinity * 2); //Infinity
  alert("5" * 5);   //25
  alert(true * 10);  //10
  alert(false * 10);  //0


alert(26 % 5); //1



alert(Infinity % 3); //NaN



alert(3 % 0); //NaN



alert(5 % Infinity); //5



alert(0 % 10); //0



alert(true % 25); //1



alert(3 % false); //NaN

12、for in 循环

for (var propName in window) {
    document.write(propName);
    document.write("<br />");
  }

13、特殊字符比较   

alert(null == undefined); //true
  alert(null === undefined); //false
  
  alert("NaN" == NaN);  //false
  alert("NaN" === NaN);  //false
  alert(NaN == NaN);   //false
  alert(NaN === NaN);   //false
  alert(NaN != NaN);   //true
  alert(NaN !== NaN);   //true
  
  alert(false == 0);   //true
  alert(false === 0);   //false
  alert(true == 1);   //true
  alert(true === 1);   //false
  
  alert(null == 0);   //false
  alert(undefined == 0);  //false
  
  alert(5 == "5");   //true
  alert(5 === "5");   //false

14、Boolean对象  

var message = "Hello world!";
  var messageAsBoolean = Boolean(message);
  
  alert(messageAsBoolean); //true

15、for循环与标签一起使用
break 语句和 continue 语句都可以与有标签的语句联合使用,返回代码中的特定位置。
通常,当循环内部还有循环时,会这样做,例如: 

var num = 0;
  //返回到特定的位置
  outermost:
  for (var i=0; i < 10; i++) {
    for (var j=0; j < 10; j++) {
    if (i == 5 && j == 5) {
     break outermost;
    }
    num++;
   }
  }
  
  alert(num); //55

在上面的例子中,标签 outermost 表示的是第一个 for 语句。正常情况下,每个 for 语句执行 10 次代码块,这意味着 num++ 正常情况下将被执行 100 次,在执行完成时,num应该等于 100。这里的 break 语句有一个参数,即停止循环后要跳转到的语句的标签。这样 break 语句不止能跳出内部 for 语句(即使用变量 j 的语句),还能跳出外部 for 语句(即使用变量 i 的语句)。因此,num最后的值是 55,因为当 i 和 j 的值都等于 5 时,循环将终止。
可以以相同的方式使用 continue 语句:

var iNum = 0;

outermost:
for (var i=0; i<10; i++) {
 for (var j=0; j<10; j++) {
 if (i == 5 && j == 5) {
 continue outermost;
 }
 iNum++;
 }
}

alert(iNum); //输出 "95"

在上例中,continue 语句会迫使循环继续,不止是内部循环,外部循环也如此。当 j 等于 5 时出现这种情况,意味着内部循环将减少 5 次迭代,致使 iNum 的值为 95。

提示:可以看出,与 break 和 continue 联合使用的有标签语句非常强大,不过过度使用它们会给调试代码带来麻烦。要确保使用的标签具有说明性,同时不要嵌套太多层循环。

以上就是今天的javascript学习小结,之后每天还会继续更新,希望大家继续关注。

Javascript 相关文章推荐
jQuery 标题的自动翻转实现代码
Oct 14 Javascript
jquery 插件开发备注
Aug 27 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
Oct 20 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
Nov 22 Javascript
JS动态创建元素的两种方法
Apr 20 Javascript
JS实现含有中文字符串的友好截取功能分析
Mar 13 Javascript
原生JS实现图片懒加载(lazyload)实例
Jun 13 Javascript
JS实现websocket长轮询实时消息提示的效果
Oct 10 Javascript
vue 使用eventBus实现同级组件的通讯
Mar 02 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
Dec 13 Javascript
JS精确判断数据类型代码实例
Dec 18 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
Sep 11 Javascript
jQuery+CSS3实现3D立方体旋转效果
Nov 10 #Javascript
JavaScript中利用各种循环进行遍历的方式总结
Nov 10 #Javascript
简单学习JavaScript中的for语句循环结构
Nov 10 #Javascript
js密码强度校验
Nov 10 #Javascript
详解javascript函数的参数
Nov 10 #Javascript
JavaScript函数的一些注意要点小结及js匿名函数
Nov 10 #Javascript
javascript实现五星评分功能
Nov 10 #Javascript
You might like
乐信RP2100的电路分析和打磨
2021/03/02 无线电
实用函数9
2007/11/08 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
php获取远程文件内容的函数
2015/11/02 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
解密效果
2006/06/23 Javascript
[对联广告] JS脚本类
2006/08/27 Javascript
js function使用心得
2010/05/10 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
python批量下载图片的三种方法
2013/04/22 Python
go和python调用其它程序并得到程序输出
2014/02/10 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
python TCP包注入方式
2020/05/05 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
创新型城市实施方案
2014/03/06 职场文书
教研处工作方案
2014/05/26 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
工作收入证明范本
2015/06/12 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
Golang 实现WebSockets
2022/04/24 Golang