资讯专栏INFORMATION COLUMN

Javascript ECMA-2(类型转换,条件语句,循环,函数)

LdhAndroid / 1513人阅读

摘要:类型装换转为数字类型会试图将字符串转为整型如果失败返回如果前面是空格数字正负号时,当碰到第一个不是数字时停止装换如果不是数字空格直接返回与没有太大区别除了以下几条转为类型转为类型在浏览器控制台中字符类型是黑色的数字是蓝色的其他类型转

1.类型装换 1.1 转为数字类型
// Number
console.log(Number(undefined));  //NaN
console.log(Number(null));  //0
        
console.log(Number(true));  // 1
console.log(Number(false)); // 0
        
console.log(Number("123"));  //123
console.log(Number("123a")); //NaN
console.log(Number("1.23"));  // 1.23
console.log(Number("+123"));  //123
console.log(Number("-123"));  // -123
console.log(Number("1+23"))  // NaN
console.log(Number(""));  // 0
console.log(Number("  "));  // 0
console.log(Number("1   23"));//  NaN
console.log(Number("1$%23"));  // NaN
console.log(Number("  123")); //123
console.log(Number("1.2.3")); // NaN
console.log(Number(".23"));  // 0.23

/ parseInt() 会试图将字符串转为整型,如果失败 返回NaN
// 如果前面是空格 数字正负号时, 当碰到 第一个不是数字时停止装换
// 如果不是数字空格直接返回NaN
console.log(parseInt(undefined));  //NaN
console.log(parseInt(null));  //  NaN
        
console.log(parseInt(true));  // NaN
console.log(parseInt(false)); // NaN
        
console.log(parseInt("123"));  //123
console.log(parseInt("123a")); // 123
console.log(parseInt("1.23"));  // 1
console.log(parseInt("+123"));  //123
console.log(parseInt("-123"));  // -123
console.log(parseInt("1+23"))  // 1
console.log(parseInt(""));  // NaN
console.log(parseInt("  "));  // NaN
console.log(parseInt("1   23"));//  1
console.log(parseInt("1$%23"));  // 1
console.log(parseInt("  123")); //123
console.log(parseInt("1.2.3")); // 1
console.log(parseInt(".123"))  //NaN

// parseFloat 与parseInt没有太大区别 除了以下几条
console.log(parseFloat("1.23"));  // 1.23
console.log(parseFloat("1.2.3")); // 1.2
console.log(parseFloat(".123"))  // 0.123

1.2 转为String 类型
// undefined null boolean 转为String类型

var a = undefined + "";
console.log(typeof a);  // string

var b = null + "";
console.log(typeof b); // string

var c = true.toString();
console.log(typeof c);

var num = 20;
var d = num.toString();
console.log(d);  //在浏览器控制台中字符类型是黑色的 数字是蓝色的

1.3 其他类型转为Boolean类型
console.log(Boolean(""));  //false
console.log(Boolean(undefined));  //false
console.log(Boolean(null));  //false
console.log(Boolean(0));  //false
console.log(Boolean(0.0));  // false
console.log(Boolean(NaN));  // false
        
console.log(Boolean(" ")); // true
console.log(Boolean(1));   // true
console.log(Boolean("abc"));  // true

2.isNaN and isFinite
console.log(isNaN(NaN));   //true
console.log(isNaN("NaN"));   //true
console.log(isNaN(123));  // false
        
// isFinite: 判断既不是NaN类型 也不是InFinite类型
console.log(isFinite(123))  //true
console.log(isFinite(NaN));  //false
console.log(isFinite(Infinity)); //false
console.log(isFinite(" "))  // true
console.log(isFinite("123 "))  // true
console.log(isFinite("123abc"))  // false

3.条件语句

if 语句

三目运算符 res = a>b?true:false (运行效率比if语句高)

switch语句

default break 都是可选语句了,当case后面没有break语句时,如果条件匹配成功,直接贯穿所有case语句,直到执行break语句

4.循环语句

while

do while

for

for(var i = 0; i < array.lenght; i++)
for(var i in array) // i 是下标
for(var i of array) // i 是元素

5.break and continue
// js中循环是可以有名字的
// 语法格式   名称:循环语句
//break continue 可以跳过或终止 带有标签名的循环
        
label1 : for(var i =  0; i < 10; i++){
    label2 : for(var j = 0; j < 10; j++){
        if(j == 3){
            break label1;
        }
        console.log(i + "  " + j);
    }
}

6.函数 6.1 函数的概述

函数名:建议使用驼峰规则
如果不写return 系统默认 返回undefined
函数在调用时只要有该函数的声明即可

6.2 函数的参数
function info(name, age) {
    document.write(name);
    document.write(age);        
}
info("lily", "9"); // lily 9
info("lily");  // lily undefined
info("lily","9","c","d")  // lily 9
        
// Js不定长参数
function printSum(){
    sum = 0;
    for(i in arguments)
        sum += arguments[i];
    return sum    
}
console.log(printSum(1,2,3))
6.3 作用域
新的作用域:函数会产生新的作用域,循环,条件语句不会产生新的作用域

变量作用域
全局变量:定在文件中,但在函数外的变量为全局变量,使用范围为整个文件的任意位置

局部变量:在函数内部使用var声明的变量为局部变量,使用范围为该函数内部

6.4 变量的提升
var num = 100;
/*
* 在js中如果函数内部使用var声明变量时,在代码执行过程中,系统
 * 会自动把变量的声明语句(var )提到函数的最上方,这个操作叫做变量的提升
 * */
function fun1 () {
    console.log(num);  // undefined
    num = num +1
    console.log(num);  // NaN   undefined + 1 = NaN
    var num = 200
    console.log(num);  // 200    
}
fun1();
6.5 参数默认值
// 定义一个函数,该函数有两个参数
// 参数的默认值
// 第一种方式: 在定义形参时,直接赋值
// 第二种方式: a = a||555;
// 第三种方式: a = a ? a : 333
function func2(a, b=999){
    // a = a||555;
    a = a ? a : 333
    console.log(a);
    console.log(b);
}
func2(1,2);
func2(4);
func2();
6.6 匿名函数
// 非即时函数
var a = function(num){
    console.log(num);
};
a(1233);


// 即时函数
(function(num){
    console.log(num);
})(666);

// 一般来说,匿名函数当做一次性函数使用,调用一次结束后,
// 一般情况下会把匿名函数作为即时函数,但是任何函数都可以
// 即时执行


// 普通函数形式的即时函数
/*(function abc(){
    alert("123")
})();*/

Javascript ECMA-3 (数组,Date,正则)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95017.html

相关文章

  • Javascript ECMA-1(数据类型,字符串操作)

    摘要:基础建议一般情况下不在标签中写语句,因为该语句会在加载之前就执行,可能导致某些效果无效单行注释多行注释控制台输出语句浏览器的提示框这是一个提示框页面展示数据类型一基本数据类型数字类型整型浮点型不是一个数字不能处理的数字字符串,使用单引号或双 1.js基础 建议:一般情况下不在head标签中写js语句,因为该js语句会在body加载之前就执行,可能导致某些效果无效 // 单行注释 /*多...

    DataPipeline 评论0 收藏0
  • javascript基础

    摘要:一弹窗和输出执行顺序是从上到下执行控制浏览器弹出一个警告框让计算机在页面中输出一个内容在中写一个内容写可以向中输出一个内容看我出不出来向控制台输出一个内容作用是向控制台输出一个内容你猜我在哪出来二编写位置可以将代码编写到外部文件中,然后通过 一.弹窗和输出 **javascript执行顺序是从上到下执行** 1.控制浏览器弹出一个警告框 alert(HelloWord); 2.让计...

    XFLY 评论0 收藏0
  • javascript性能优化方面的知识总结

    摘要:插入迭代器如前面两条语句可以写成使用直接量替换为替换为替换为如果要创建具有一些特性的一般对象,也可以使用字面量,如下前面的代码可用对象字面量来改写成这样使用优化多次一旦需要更新请考虑使用文档碎片来构建结构,然后再将其添加到现存的文档中。 好赞,收藏自 总结的js性能优化方面的小知识(不喜勿喷) 前言 一直在学习javascript,也有看过《犀利开发Jquery内核详解与实践》,对...

    BlackHole1 评论0 收藏0
  • JavaScript基础

    摘要:基础标识符所谓的标识符就是指变量函数属性的名字,或者函数的参数。原始数组不会被改变。删除或替换现有元素来修改数组并以数组形式返回被修改的内容。否则返回返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回。 Javascript基础 标识符 所谓的标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符主要有以下规则: 首字符必须是字母、下划线_或者美元符$ 其他字符可...

    vspiders 评论0 收藏0
  • 重新复习js

    摘要:复习基础到底是什么的应用场合极其广泛。常量不可以通过重新赋值改变其值,也不可以在代码运行时重新声明。布尔对象是原始布尔数据类型的一个包装器整数整数可以用十进制基数为十六进制基数为八进制基数为以及二进制基数为表示。 复习js day1 js基础 JavaScript 到底是什么 JavaScript 的应用场合极其广泛。简单到幻灯片、照片库、浮动布局和响应按钮点击。复杂到游戏、2D 和 ...

    xuexiangjys 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<