每天一篇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 相关文章推荐
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
Mar 27 Javascript
JS与框架页的操作代码
Jan 17 Javascript
jQuery AJAX回调函数this指向问题
Feb 08 Javascript
javascript中[]和{}对象使用介绍
Mar 20 Javascript
javaScript arguments 对象使用介绍
Oct 18 Javascript
浅谈Javascript线程及定时机制
Jul 02 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
May 25 Javascript
给easyui datebox扩展一个清空的实例
Nov 09 Javascript
JS轮播图中缓动函数的封装
Nov 25 Javascript
完美实现js焦点轮播效果(一)
Mar 07 Javascript
JS中的三个循环小结
Jun 20 Javascript
微信小程序滑动选择器的实现代码
Aug 10 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
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
php的一个登录的类 [推荐]
2007/03/16 PHP
curl和libcurl的区别简介
2015/07/01 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
xml转json的js代码
2012/08/28 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
Python循环语句中else的用法总结
2016/09/11 Python
django 发送手机验证码的示例代码
2018/04/25 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
python仿抖音表白神器
2019/04/08 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
python打开文件的方式有哪些
2020/06/29 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
.NET remoting中对象激活的两种方式
2015/06/08 面试题
初婚未育未抱养证明
2014/01/12 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
10的分与合教学反思
2014/04/30 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
博士导师推荐信
2015/03/25 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
Ajax实现三级联动效果
2021/10/05 Javascript
Consul在linux环境的集群部署
2022/04/08 Servers
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS