JavaScript基级变量函数

Posted 执久呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript基级变量函数相关的知识,希望对你有一定的参考价值。

目录

一、前言

二、JavaScript的变量

三、函数初步

函数参数中的几个场景

情景1:传入参数不足

 情景2:传入参数过多

情景3:无参数传入

 情景4:多个函数同名


一、前言

javascript和java的语法大相径庭,所以在学习体会到全新的知识

二、JavaScript的变量

var 变量名;

如:var i;

javascript是一门弱类型的语言,没有编译阶段一个变量可以随意赋值。

var i;
i=true;
i=1.23;
i=new Object();
i="abc";

这里的var可以表示任何类型。

var i;
//i没有赋初始值默认是undefined

一个变量没有赋初始值,默认是undefined ,undefined在js是一个具体存在的值。

测试代码: 

<!doctype html>
<html>
   <head>
       <meta charset="utf-8">
      <title></title>
   </head>
   <body>
       <script type="text/javascript">
       var i;
          alert("i的默认值是"+i);
       </script>
   </body>
</html>

 一个变量如果没声明直接用则会报错

<script type="text/javascript">
   alert(i);//i没声明。则会报i is not define的语法错误
</script>

 下列的结果是:

       <script type="text/javascript">
       var i,b,c=10;
       alert("i="+i+",b="+b+",c="+c);  
       </script>

 结果:

js中的变量命名规范和规则差不多,但是变量的赋值就相差很远,Java是一门强类型的语言,而JavaScript是一门弱类型的语言。

怎么理解强类型和弱类型的语言呢?
java语言存在编译阶段,假设有代码:int i;
那么在Java中有一个特点是;java程序编译阶段就已经确定了 i变量的数据类型,该i变量的数据类型在编译阶段是int类型,那么这个变量到最终内存释放,一直都是int类型,不可能变成其他类型。强制类型转化变得也只是语法面上,对象的类型还是不变。

Java中要求申明的时候是什么类型就一直的是什么类型,不可变,这就是强类型。

JavaScript是一个弱类型是因为在声明的时候不需要指定数据类型,变量的类型是有值来定的。

三、函数初步

函数必须调用才会生效

js的函数类型没有限制和参数个数没有限制,函数名是唯一标识。

函数的定义格式:

方式①:

<script type="text/javascript">
  function 函数名(形式参数列表)
     函数体; 
  
</script>

示例:

<script type="text/javascript">
  function sum(a,b,c)
     alert(a+b+c);
  
</script>
 //函数必须调用才能执行:
sum(10,20,30);

方式②:

<script type="text/javascript">
    函数名= function(形式参数列表)
     函数体; 
  
</script>

将函数封装在点击事件:

<!doctype html>
<html>
   <head>
       <meta charset="utf-8">
      <title></title>
   </head>
   <body>
       <script type="text/javascript">
         didi=function(a)
           alert("hello"+a);
         
       </script>
    <input type="button" value="按钮呀"  onclick="didi(' everyone');">
   </body>
</html>

js中的函数不能重载

函数参数中的几个场景

情景1:传入参数不足

     <script type="text/javascript">
         didi=function(a,b)
         alert (a+b);
         
         didi("hello");
       </script>
  //只传了一个
结果会是第一个参数赋值,另一个没赋值的默认是undefined,所以结果是helloundefined (字符串拼接)

 情景2:传入参数过多

     <script type="text/javascript">
         didi=function(a,b)
         alert (a+b);
         
         didi(1,2,3,4);
       </script>
//传入过多个,只会计算函数参数多少个,所以只取2个,结果是1+2=3

情景3:无参数传入

     <script type="text/javascript">
         didi=function(a,b)
         alert (a+b);
         
         didi();
       </script>
      //没传参
      结果是NaN,NaN表示具体存在的值,这个表示不是数字(Not a Number)

 情景4:多个函数同名

     <script type="text/javascript">
         didi=function(a)
         alert (hello);
         
         didi=function(a,b)
         alert ("hi");
         
         didi("xiu")
       </script>
//结果是 hi,因为函数同名后面的会覆盖前面的

 函数名不能重名,否则后面的函数会覆盖前面的,因为是自上而下执行程序

以上是关于JavaScript基级变量函数的主要内容,如果未能解决你的问题,请参考以下文章

关于javascript函数变量作用域问题

javascript 使用

JavaScript 作用域

JavaScript闭包

JavaScript-Runoob-JS函数:JavaScript 闭包

访问javascript函数内部的函数内部的变量?