JavaScript数据类型与函数

在这里插入图片描述

数据类型

在JavaScript中定义变量时不需要指定类型,在运算时JavaScript能自动转换数据类型。但还是要了解JavaScript的数据类型。

数值

JavaScript包含三种基本的数据类型:数值、字符串和布尔型。
使用toString()方法可以把数值转换为字符串。

使用toString()方法把数值100转换为字符串,使用typeof()方法验证转换后的数据类型

var a = 100;
var b = a.toString();
alert(typeof(b));

在这里插入图片描述
还可以将数值与字符串相加,就可以将数值转换为字符串

var a = 100;
var b = a + "";
alert(typeof(b));

字符串

字符串由Unicode字符、数字、标点符号等组成的字符序列,字符串处必须使用单引号或双引号包括起来。单引号也可以包含双引号,双引号也可以包含单引号。所有字符串应该在同一行书写。

字符串赋值方式

var str = "字符串";                 //简单的字符串
var str = "'javascript'和'java'";   //包含单引号的字符串
var str = '<meta charset="utf-8">'; //HTML字符串

使用parseInt()和parseFloat()方法可以把字符串转换为数值

var str = "123.30";     
var a = parseInt(str);   //返回值123
var b = parseFloat(str); //返回值123.3

也可以让字符串与1相乘,就可把字符串转换为数值

var str = "123.30"
var a = str * 1;     
alert(typeof a);  //返回number

布尔型

布尔型只包括两个值true与false。布尔值大多用在逻辑运算、比较运算中和条件语句中。
将值转换为布尔类型,在值的前面增加两个感叹号。

var a = 100;
var c = !!a;        //把变量a转换为布尔值
alert(c);           //返回值为true
alert(typeof c);    //返回boolean

将布尔值转换为字符串

var b = false;
a = a + "";    //值为true
b = b + "";    //值为false

将布尔值转换为数值

var a = true;
var b = false;
a = b * 1;      //值为1
b = b * 1;      //值为0

注:这些值的布尔值都是false

  • 0
  • NaN
  • ’ ’
  • false
  • null
  • undefined

函数

函数构成了JavaScript源代码的主体

定义函数

定义函数有两种方法
function语句声明函数
Function对象构造函数
使用function定义函数

1:命名函数
function h(){
    //函数体
}2:匿名函数
var h = function(){
    //函数体
}

使用Function对象构造函数

var function_name = new Function(arg1, arg2, ..., argN, function_body)

Function()所有的参数必须是字符串

var say = new Function("name", "say", "document.write('<h1>' + name + ': ' + say + '</h1>');");
say("张三", "Hello!")

在这里插入图片描述
在实际应用中使用function比Function构造函数简单,并且更高效。

var say = function(name, say){
    document.write('<h1>' + name + ' :  ' + say + '</h1>');
}
say("张三", "Hello!")

调用函数

调用函数使用小括号运算符来实现。在括号运算符内部可以包含所有多个参数列表,参数之间通过逗号进行分隔。

function f(){
    return "Hello,World!";
}
document.write(f());

函数的返回值没有任何类型限制,它可以返回任意类型的值。

函数参数

参数分为两种形参和实参
形参:定义函数时,传递给函数的参数,被称为形参,形式上的参数
实参:当函数被调用时,传递给函数的参数,这些参数被称为实参

function add(a,b){   //形参a,b
    return a + b;
}
alert(add(10,20));   //实参10,20

函数形参的数量可以使用函数的length属性获取
注:当形参大于实参时,多出的形参值为undefined;如果实参大于形参,多出的实参就无法被形参变量访问,就会被忽略掉。

传递三个实参值,函数自动忽略掉第三个实参的值

function add(a,b){
    return a + b;
}
alert(add(1,2,3));      //第三个实参被忽略掉,结果为3

预防用户随意传入参数,可以在函数体内检测函数的形参和实参是否一致,如果不一致可以抛出异常,如果一致正常计算。

function add(a, b){
    if(add.length != arguments.length)
        throw new Error("实参与形参不一致,请重新调用函数!");
    else
        return a + b;    
}
try{
    alert(add(2));
}
catch(e){
    alert(e.message);
}

在这里插入图片描述

函数应用

匿名函数

匿名函数就是没有名称的函数,当只需要一次性使用函数时,使用匿名函数会更加有效率。

var z = function(x, y){
    return (x + y) / 2;
}(23, 35)

函数作为值

函数可以作为值赋予给其他变量

var a = function(x,y){
    return (x+y)/2;
}
alert(a(12, 33));

函数作为参数

函数也可以作为参数传递给另一个函数,也可以作为返回值。

var a = function (f, x, y){
    return f(x, y);
};
var b = function(x, y){
    return x + y;
};
alert( a(b, 3, 4));

函数作为表达式

var a = function(x){
    alert(x);
}
a(50);


(function(x) {
    alert(x);
    })(50);

闭包函数

闭包函数时一个拥有许多变量和绑定了这些变量的环境的表达式。闭包函数就是外部函数被调用后,它的变量不会消失,仍然被内部函数所使用,而且所有的内部函数都拥有外部函数的访问权限。

function a(){
    var n = 0;
function b(m){
    n = n + m;
        return n;
   }
   return b;           
}
var b = a();     //调用外层函数,返回内部函数
document.write(b(3));
document.write("<br>");
document.write(b(3));
document.write("<br>");
document.write(b(3));
document.write("<br>");
document.write(b(3));

在这里插入图片描述

人生漫漫其修远兮,网安无止境。
一同前行,加油!

猜你喜欢

转载自blog.csdn.net/qq_45924653/article/details/108295188