每天一篇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 相关文章推荐
javascript document.referrer 用法
Apr 30 Javascript
js的一些常用方法小结
Jun 29 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
Mar 07 Javascript
jQuery中outerHeight()方法用法实例
Jan 19 Javascript
JavaScript闭包详解
Feb 02 Javascript
JS实现自动变换的菜单效果代码
Sep 09 Javascript
元素全屏的设置与监听实例
Nov 28 Javascript
使用Angular 6创建各种动画效果的方法
Oct 10 Javascript
JavaScript canvas实现跟随鼠标事件
Feb 10 Javascript
原生JS实现天气预报
Jun 16 Javascript
实现一个简单得数据响应系统
Nov 11 Javascript
Vue如何清空对象
Mar 03 Vue.js
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
Yii2 输出xml格式数据的方法
2016/05/03 PHP
CI框架整合widget(页面格局)的方法
2016/05/17 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
jQuery设计思想
2017/03/07 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
github配置使用指南
2014/11/18 Python
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
Python装饰器简单用法实例小结
2018/12/03 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
Django接收自定义http header过程详解
2019/08/23 Python
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
华三通信H3C面试题
2015/05/15 面试题
公司部门司机岗位职责
2014/01/03 职场文书
初中数学教学反思
2014/01/16 职场文书
工作自我评价怎么写
2014/01/29 职场文书
小学美术教学反思
2014/02/01 职场文书
法学函授自我鉴定
2014/02/06 职场文书
一年级评语大全
2014/04/23 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
同学会感言
2015/07/30 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
Python中递归以及递归遍历目录详解
2021/10/24 Python