JavaScript的数据类型---最全,最详细的数据类型,高级的工程师从数据类型开始...

一.基本数据类型

  1.字符串数据类型
     var hello="你好啊";
     var hello='你好啊';
示例:
<script language="javascript">
<!--
 var hello = "你好啊";   // 使用双引号定义字符串
 var name = "Peter";   // 使用单引号定义字符串
 alert( hello + name );   // 将两个字符串合在一起显示 
-->
</script>
 深入理解字符串--在JavaScript中不区分字符与字符串,字符也被当作字符串处理。常用转义字符\n \t \r \f \' \" \\
<script language="javascript">
 var str1 = "1,使用回车换行符\n"; // 行尾使用“\n”作回车换行
 var str2 = "2,使用回车符\r";  // 行尾使用“\r”回车符
 var str3 = "3,使用:\t制表符\n"; // 中间使用一个制表符“\t”
 var str4 = "4,使用\"双引号\"";  // 使用引号“\"”
 var str  = str1 + str2 + str3 + str4; // 将4个字串符连接为了个串用于显示
 alert(str);    // 在对话框是显示连接后的串str
 document.write(str);
</script>    
2.数值型数据--不像其他编程语言那样区分整型、浮点型。
<script language="javascript">

    // 使用16进制数
 var i = 0Xa1;  // 分别定义两个数字变量,并使用0x和0X作十六进制设置初值
 var j = 0xf2;
 var s = i + j;  // 十六进制变量i与j相加
    // 输出为十进制
 document.write("<li>十六进制数0xa1等于十进制数:" + i + "<br>" );
 document.write("<li>十六进制数0xf2等于十进制数:" + j + "<br>" );
 document.write("<li>十六进制数0xf2加上0xa1的和为:" + s + "<br>" );

    // 使用8进制数
 var k = 0123;  // 分别定义两个数值变量,分别用八进制值设置为初值
 var l = 071;
 var m = k + l;  // 两个变量的值相加
    // 输出为十进制
 document.write("<li>八进制数0123等于十进制数:" + k + "<br>" );
 document.write("<li>八进制数071等于十进制数:" + l + "<br>" );
 document.write("<li>八进制数0123加上071的和为:" + m + "<br>" );
    // 使用10进制
 var t1 = 0.1;  // 定义十进制小数数字的形式
 var t2 = 1.1;
 var t3 = 2e3;  // 使用科学计数法表示数值
 var t4 = 2e-3
 var t5 = 0.1e2;
 var t6 = 0.1e-2; // 将各变量的值全部输出
 document.write("<li>十进制带小数的形式:" + t1 + "和" + t2 + "<br>" );
 document.write("<li>十进制科学记数2e3等于:" + t3 + "<br>" );
 document.write("<li>十进制科学记数2e-3等于:" + t4 + "<br>" );
 document.write("<li>十进制科学记数0.1e2等于:" + t5 + "<br>" );
 document.write("<li>十进制科学记数0.1e-2等于:" + t6 + "<br>" );

</script>
3.布尔型数据--布尔型只有真假两个数据类型,真用true,假用false,非0既真,0为假
<script language="javascript">
<!--  
 var b1 = true; // 定义布尔型变量b1并赋初始为“真”
 if( b1 ) // 判断b1的真是否为真,真则执行“{}”中的语句
 {
  document.write("变量b1的值为\"真\"<br>");
 }
 var b2 = false;
 if( b2 )
 {
  document.write("变量b2的值为\"真\"<br>");
 }
 else
 {
  document.write("变量b2的值为\"假\"<br>");
 }
 var b3 = 0.1; // 定义数字类型变量b3并赋予非0值
 if( b3 ) // 此处b3被当作布尔型变量,并判断真或假
 {
  document.write("变量b3的值为\"真\"<br>");
 }
 var b4 = -1; // 定义数字类型变量b4并赋予非0值
 if( b4 ) // 此处b4被当作布尔型变量,并判断真或假
 {
  document.write("变量b4的值为\"真\"<br>");
 }
 var b5 = 0; // 定义数字类型变量并赋予0值
 if( b5 ) // 此处b5被当作布尔型变量,并判断真或假
 {
  document.write("变量b5的值为\"真\"<br>");
 }
 else
 {
  document.write("变量b5的值为\"假\"<br>");
 }
-->
</script>
二.复合数据类型
1.常用内置对象--将数据与处理数据的方法捆绑在一起形成一个整体,称为对象。var obj=new Object();obj.toScript();
Object:所有对象的基础对象
Array:数组对象,封装了数组的操作和属性
ActiveXObject:活动空间对象
arguments:参数对象,正在调用的函数的参数
Boolean:布尔对象,提供同布尔类型等价的功能
Date:日期对象,封装了日期相关的操作和属性对象
Error:错误对象,保存错误信息
Function:函数对象,用于创建函数
Global:全局对象,所有的全局函数和全局常量归该类对象所有
Math:数学对象,提供基本的数学函数和常量
Number:数字对象,代表数值数据类型和提供数值常量的对象
String:字符串对象,提供操作的属性的对象
2.常用日期对象--date=new Date();date=new Date(val);date=new Date(y,m,d[,h[,min[,sec[,ms]]]]);
<script language="javascript">
<!--
 var cur = new Date();  // 创建当前日期对象cur
 var years = cur.getYear(); // 从日期对象cur中取得年数
 var months = cur.getMonth(); // 取得月数
 var days = cur.getDate(); // 取得天数
 var hours = cur.getHours(); // 取得小时数
 var minutes = cur.getMinutes(); // 取得分钟数
 var seconds = cur.getSeconds(); // 取得秒数
     // 显示取得的各个时间值
 alert( "此时时间是:" + years + "年" + (months+1) + "月"
  + days + "日" + hours + "时" + minutes + "分"
  + seconds + "秒" );
-->
</script>
getDate()返回对象中本地时间表示的日期
getYear()返回对象中本地时间表示的年值
getMonth()
getDay()
getHours()
getSeconds()
getMinutes()
setDate(dateVal)设置对象中的日期值
setYear(yearVal)
setMonth(monthVal)
<script language="javascript">
<!-- 
 var dateObj = new Date(); // 创建一个日期对象 
 dateObj.setYear( 2007); // 设置日期对象的年份 
 dateObj.setDate( 20 );  // 设置日期对象的日期
 dateObj.setMonth( 4 );  // 设置日期对象的月份
     // 显示日期对象中的时间
 alert( "dateObj中设定的时间为:" + dateObj.getYear() + "年"
  + dateObj.getMonth() + "月" + dateObj.getDate() + "日" );
-->
</script>
3.理解全局对象--全局对象是所有全局方法的拥有者,用来统一管理全局方法,全局方法也指全局函数。不能使用new运算符创建对象实例
isNaN(value)判断value是否是NaN,返回一个布尔型
parseFloat(string)返回有字符串string转换的到的浮点数
parseInt(string)返回有字符串string转换得到的整数
<script language="javascript">
<!--
 var a = NaN;
 var b = "123";
 var c = 123;
 var d = "1.23";
 document.write( "<b>Global对象的isNaN方法</b><br>" );
 var ta =  isNaN( a ); // 使用Global对象的isNaN()方法测试a的值
 document.write( "<li>a的值是否是NaN:" + ta + "<br>" );
 var tb = isNaN( b ); // 测试b的值
 document.write( "<li>b的值是否是NaN:" + tb + "<br>" );
 var tc = isNaN( c ); // 测试c的值
 document.write( "<li>c的值是否是NaN:" + tc + "<br>" );
 document.write( "<b>Global对象的parseInt方法</b><br>" );
 var ib = parseInt( b ); // 使用Global对象的parseInt方法,将字符串“123”解析为数值123
 if( ib == c )
 {
  document.write( "<li>b解析为数值:" + ib + "<br>" );
 }
 document.write( "<b>Global对象的parseFloat方法</b><br>" );  
 var id = parseFloat( d );// 使用Global对象的parseFloat方法将字符串“1.23”解析为数值1.23
 if( id == 1.23 )
 {
  document.write( "<li>b解析为数值:" + id + "<br>" );
 }
-->
</script>
4.常用数学对象--Math.[{属性名|方法名}];
PI返回圆周率
abs返回数字的绝对值
cos返回给定数的余弦值
sin返回数的正弦值
min返回给定数的最小值
max返回给定数的最大值
sqrt返回给定数的平方根
Tan返回给定数的正切值
round返回与给定数最接近的整数值
log返回给定数的自然对数
pow返回给定数的制定次幂
<script language="javascript">
<!-- 
 var r = 2;     // 定义变量表示半径 
 var pi = Math.PI;    // 从Math对象中读取周期率PI常量 
 var s = pi*r*r;     // 计算面积
 alert("半径为2单位的圆面积为:" + s + "单位" ); // 显示圆的面积
-->
</script>
<script language="javascript">
<!-- 
 var r1 = Math.sin( Math.PI/2 ); // 求余弦
 document.write("<li>弧度为pi/2的正弦值为:" + r1 + "<br>" );
 var r2 = 0-r1;
 var r3 = Math.abs( r2 ); // 求绝对值
 document.write("<li>" + r2 + "的绝对值为:" + r3 + "<br>" );
-->
</script>
5.常用字符串对象--String([strVal]);
<script language="javascript">
<!--
 // 诗的内容
 var comment = "静夜思李白床前明月光,疑是地上霜。举头望明月,低头思故乡。";
 var partial = comment.substring( 0, 3 ); // 取出标题
 partial = partial.bold();   // 标题加粗
 document.write( "<p align=\"center\">" ); // 输出HTML标签“<p>”,并设置居中对齐
 document.write( partial );   // 输出标题
 partial = comment.slice( 3, 5 );  // 取出作者
 document.write( "<br>" );   // 输出换行标签<br>
 document.write( partial );   // 输出作者
 partial = comment.slice( 5, 17 );  // 取出第一句诗文
 partial = partial.fontcolor("gray");  // 设置颜色为gray(灰色)
 document.write( "<br>" );   // 输出换行标签
 document.write( partial );   // 输出诗句
 partial = comment.slice( 17, 29 );  // 取出第二句诗文
 partial = partial.fontcolor("gray");  // 设置颜色为gray(灰色)
 document.write( "<br>" );   // 输出换行标签
 document.write( partial );   // 输出诗句
 document.write( "</p>" );   // 输出HTML标签“<p>”的结束标签
-->
</script>
6.掌握数组对象--var a=new Array();var a=new Array(10,20,30,string,40);var a=[10,20,30,string,40];var a=new Array(3);
<script language="javascript">
<!--
 var poets = new Array( "王维",  "杜甫", "李白", "白居易" ); // 创建数组
 document.write("古代几个大诗人:<br>");    // 输出标题
 for( n in poets )      // 逐个输出数组元素
 {
  document.write( "<li>" + poets[n] );   // 输出诗人的名字
 }
-->
</script>
三.其他数据类型
1.使用函数--function TypeName([arg,…]){this.arg=arg;}
<script language="javascript">
<!--
 function Card( owner, rate )   // 定义一车子对象
 {
  this.Owner = owner;   // 车主
  this.MaxRate = rate;   // 极速
 }
 var myCard = new Card( "Sunsir", "400KMpH" ); // 创建一个车子实例
 document.write( myCard.Owner + "的车子极速为" + myCard.MaxRate ); // 输出车子的属性
-->
</script>
2.空值--null
<script language="javascript">
<!--
 var x = 10; // 定义变量x,并给其赋值10
 var y = null; // 定义变量y,并赋一个空值,表示“什么都没有”
 if( x == null ) // 如果x为空值则
 {
  document.write( "x的值为空<br>" );
 }
 if( y == null ) // 如果y为空则
 {
  document.write( "y的值为空<br>" );
 }
-->
</script>
3.不确定的类型--undefined
<script language="javascript">
<!-- 
 var v0 = 1;      // 定义一个值为1的变量 
 var v1 = null;      // 定义一个变量,并指定值为null 
 var v2;       // 定义一个变量,但不赋任何值 
 document.write("变量v0的内容为:" + v0 + "<br>" ); // 分别输出v0、v1、和v2的内容
 document.write("变量v1的内容为:" + v1 + "<br>" );
 document.write("变量v2的内容为:" + v2 + "<br>" ); 
 if( v1 == v2 )      // 测试“null”和“undefined”的相等性
 {
  document.write("\"null\"和\"undefined\"相等<br>" );
 }
 else
 {
  document.write("\"null\"和\"undefined\"不相等<br>" );
 }
-->
</script>
四.数据类型的转换

1.Javascript类型转换的规则Javascript的变量是松散类型的,它可以存储Javascript支持的任何数据类型,其变量的类型可以在运行时被动态改变
2..隐式类型转换

 

  • 在某些情况下,即使我们不提供显示转换,Javascript也会进行自动类型转换,主要情况有:

  • 1. 用于检测是否为非数值的函数:isNaN(mix)--isNaN()函数,经测试发现,该函数会尝试将参数值用Number()进行转换,如果结果为“非数值”则返回true,否则返回false。 

  • 2. 递增递减操作符(包括前置和后置)、一元正负符号操作符--这些操作符适用于任何数据类型的值,针对不同类型的值,该操作符遵循以下规则(经过对比发现,其规则与Number()规则基本相同): 

    (1) 如果是包含有效数字字符的字符串,先将其转换为数字值(转换规则同Number()),在执行加

    减1的操作,字符串变量变为数值变量。  

    (2) 如果是不包含有效数字字符的字符串,将变量的值设置为NaN,字符串变量变成数值变量。

  • (3) 如果是布尔值false,先将其转换为0再执行加减1的操作,布尔值变量编程数值变量。 

  • (4) 如果是布尔值true,先将其转换为1再执行加减1的操作,布尔值变量变成数值变量。 

  • (5)如果是浮点数值,执行加减1的操作。  

  • (6)如果是对象,先调用对象的valueOf()方法,然后对该返回值应用前面的规则。如果结果是NaN,
  • 3.加号运算操作符在Javascript也用于字符串连接符,所以加号操作符的规则分两种情况: 

     如果两个操作值都是数值,其规则为:  

  •    (1) 如果一个操作数为NaN,则结果为NaN  

  •    (2) 如果是Infinity+Infinity,结果是Infinity  

  •    (3) 如果是-Infinity+(-Infinity),结果是-Infinity  

  •    (4) 如果是Infinity+(-Infinity),结果是NaN  

  •    (5)如果是+0+(+0),结果为+0  

       (6) 如果是(-0)+(-0),结果为-0  

       (7) 如果是(+0)+(-0),结果为+0  
  •  如果有一个操作值为字符串,则:  

       (1) 如果两个操作值都是字符串,则将它们拼接起来  

       (2) 如果只有一个操作值为字符串,则将另外操作值转换为字符串,然后拼接起来  

       (3) 如果一个操作数是对象、数值或者布尔值,则调用toString()方法取得字符串值,然后再应用前面的字符串规则。对于undefined和null,分别调用String()显式转换为字符串。  可以看出,加法运算中,如果有一个操作值为字符串类型,则将另一个操作值转换为字符串,最后连接起来。 

    4.乘除、减号运算符、取模运算符 

    这些操作符针对的是运算,所以他们具有共同性:如果操作值之一不是数值,则被隐式调用Number()函数进行转换。具体每一种运算的详细规则请参考ECMAScript中的定义。 

  • 5. 逻辑操作符(!、&&、||)

    1. 逻辑非(!)操作符首先通过Boolean()函数将它的操作值转换为布尔值,然后求反。
  • 2.逻辑与(&&)操作符,如果一个操作值不是布尔值时,遵循以下规则进行转换: 
  • (1) 如果第一个操作数经Boolean()转换后为true,则返回第二个操作值,否则返回第一个值(不是

    Boolean()转换后的值)  

    (2)如果有一个操作值为null,返回null  3. 如果有一个操作值为NaN,返回NaN  

    (3)如果有一个操作值为undefined,返回undefined  逻辑或(||)操作符,

  • 3.如果一个操作值不是布尔值,遵循以下规则: 

    (1) 如果第一个操作值经Boolean()转换后为false,则返回第二个操作值,否则返回第一个操作值

    (不是Boolean()转换后的值)  

    (2)对于undefined、null和NaN的处理规则与逻辑与(&&)相同 

  •  6. 关系操作符(<, >, <=, >=) 

    与上述操作符一样,关系操作符的操作值也可以是任意类型的,所以使用非数值类型参与比较时也需要系统进行隐式类型转换: 

    (1)如果两个操作值都是数值,则进行数值比较  

    (2)如果两个操作值都是字符串,则比较字符串对应的字符编码值  

    (3)如果只有一个操作值是数值,则将另一个操作值转换为数值,进行数值比较  

    (4) 如果一个操作数是对象,则调用valueOf()方法(如果对象没有valueOf()方法则调用toString()

    方法),得到的结果按照前面的规则执行比较  

    (5)如果一个操作值是布尔值,则将其转换为数值,再进行比较  

    注:NaN是非常特殊的值,它不和任何类型的值相等,包括它自己,同时它与任何类型的值比较大小时都返回false。 

    7. 相等操作符(==)相等操作符会对操作值进行隐式转换后进行比较: 

  • <script language="javascript">
    <!--
     var age = prompt("请输入您的年龄:", "0"); // 输入年龄
     if( age <= 0 )     // 如果输入的数字小于等于0则视为非法
     {
      alert("您输入的数据不合法!");
     }
     else
     {
      alert( "你的年龄为" + age + "岁" );
     }
    -->
    </script>
  • 3.显式转换

  • Number(mix)函数,可以将任意类型的参数mix转换为数值类型。其规则为: 

    (1) 如果是布尔值,true和false分别被转换为1和0 

  • (2)如果是数字值,返回本身。  

  • (3)如果是null,返回0.  

    (4) 如果是undefined,返回NaN。

  • (5) 如果是字符串,遵循以下规则: 

  • (6)如果字符串中只包含数字,则将其转换为十进制(忽略前导0)  

  •     如果字符串中包含有效的浮点格式,将其转换为浮点数值(忽略前导0)  

  •     如果是空字符串,将其转换为0  

        如果字符串中包含非以上格式,则将其转换为NaN  

    (7) 如果是对象,则调用对象的valueOf()方法,然后依据前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,再次依照前面的规则转换返回的字符串值。  

    下表列出了对象的valueOf()的返回值: 

  • 对象    返回值 

  •           数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作

  • Array  与 Array.toString 和 Array.join 方法相同。 

  • Boolean Boolean 值。 

  • Date 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。 

  •  Function 函数本身。 

  • Number 数字值。 

    Object 对象本身。这是默认情况。 

  • String 字符串值。 

    parseInt(string, radix)函数,将字符串转换为整数类型的数值。它也有一定的规则:   

    (1) 忽略字符串前面的空格,直至找到第一个非空字符 

  • (2)如果第一个字符不是数字符号或者负号,返回NaN  

    (3) 如果第一个字符是数字,则继续解析直至字符串解析完毕或者遇到一个非数字符号为止

  • (4)如果上步解析的结果以0开头,则将其当作八进制来解析;如果以0x开头,则将其当作十六进

    制来解析  

    (5)如果指定radix参数,则以radix为基数进行解析  

  • parseFloat(string)函数,将字符串转换为浮点数类型的数值。 

    它的规则与parseInt基本相同,但也有点区别:字符串中第一个小数点符号是有效的,另外parseFloat会忽略所有前导0,如果字符串包含一个可解析为整数的数,则返回整数值而不是浮点数值。 

    toString(radix)方法。除undefined和null之外的所有类型的值都具有toString()方法,其作用是返回对象的字符串表示。

  •  对象 操作 

    Array 将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。

  •  Boolean 如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。 

  • Date 返回日期的文字表示法。 

    Error 返回一个包含相关错误信息的字符串。 

    Function 返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称:  function functionname( ) { [native code] } 

    Number 返回数字的文字表示。 String 返回 String 对象的值。 

    默认 返回 “[object objectname]”,其中 objectname 是对象类型的名称。 

    String(mix)函数,将任何类型的值转换为字符串,其规则为: 

    (1)如果有toString()方法,则调用该方法(不传递radix参数)并返回结果 

  • (2) 如果是null,返回”null”  

    (3) 如果是undefined,返回”undefined”  

    6、Boolean(mix)函数,将任何类型的值转换为布尔值。 以下值会被转换为false:false、”"、0、NaN、null、undefined,其余任何值都会被转换为true
    <script language="javascript">
    <!--
     var priceOfApple = "3元";    // 苹果的价格
     var priceOfBanana = "3.5元";    // 香蕉的价格
     priceOfApple = parseInt( priceOfApple );  // 解析苹果的价格
     var priceOfBanana2 = parseInt( priceOfBanana );  // 解析香蕉的价格
     if( ( priceOfApple===3 ) && ( priceOfBanana2 === 3 ) // 检查解析是否成功
        && ( parseFloat( priceOfBanana ) ===3.5 ) ) 
     {
      alert( "苹果的价格:" + priceOfApple   // 输出水果的价格
       + "\n香蕉的价格的整数部分:" + priceOfBanana2
       + "\n香蕉的价格:" + parseFloat( priceOfBanana ) );
     }
     else
     {
      alert( "并没有得到预期的转换效果!" );  // 解析失败时输出警告信息
     }
    -->
    </script>

  • 示例分数---编写一个程序,记录学生的《高等数学》成绩,要求集中输出60-69,70-79,80-89和90-100各个分数段的学生名字
    <script language="javascript">
    <!--
     var score = new Array(  "王勇", 50,   // 分数表
        "白露", 60,
        "杨杨", 76,
        "李明", 83,
        "张莉莉", 70,
        "杨宗楠", 71,
        "徐霞", 66,
        "杨玉婷", 93
            );
     var namesOf_0To59 = "";     // 存储各分数段人学生名字的变量
     var namesOf_60To69 = "";
     var namesOf_70To79 = "";
     var namesOf_80To89 = "";
     var namesOf_90To100 = "";
     var scoreSum = 0;
     document.write( "<b>《高等数学》成绩统计表</b><br>" ); // 标题
     for( index in score )
     {
      
      if( index%2==1 )// 如果当前元素索引为奇数,则该元素为分数,其前一个元素即为该分数的学生名字
      {
       // 判断当前分数所在的分数段并将学生名字存入相应变量
       if( (score[index]>=0) && (score[index]<=59) )
       {
        namesOf_0To59 += score[index-1] + " ";
       }
       if( (score[index]>=60) && (score[index]<=69) )
       {
        namesOf_60To69 += score[index-1] + " ";
       }
       if( (score[index]>=70) && (score[index]<=79) )
       {
        namesOf_70To79 += score[index-1] + " ";
       }
       if( (score[index]>=80) && (score[index]<=89) )
       {
        namesOf_80To89 += score[index-1] + " ";
       }
       if( (score[index]>=90) && (score[index]<=100) )
       {
        namesOf_90To100 += score[index-1] + " ";
       }
       scoreSum += score[index];   // 统计分数 
      }
     }
     document.write( "<li>00~59分:" + namesOf_0To59 + "<br>" ); // 分别输出各分数段的学生
     document.write( "<li>60~69分:" + namesOf_60To69 + "<br>" );
     document.write( "<li>70~79分:" + namesOf_70To79 + "<br>" );
     document.write( "<li>80~89分:" + namesOf_80To89 + "<br>" );
     document.write( "<li>90~100分:" + namesOf_90To100 + "<br>" );
     // 数组元素个数除以2即为人数,总分除以人数即得平均分
     document.write( "<li>平均分 :" + scoreSum/(score.length/2) + "<br>" );
    -->
    </script>
    示例--处理文本
    <script language="javascript">
    <!--
     var comment = "采莲南塘秋,莲花过人头;低头弄莲子,莲子清如水。今晚若有采莲人,这儿的莲花也算得“过人头”了;只不见一些流水的影子,是不行的。这令我到底惦着江南了。"
     var newComment = "";
     for( n = 0; n<comment.length; n ++ )
     {
      var curChar = comment.charAt( n );
      if( curChar=="莲" )
      {
       newComment += (curChar.bold()).fontcolor("red");
      }
      else
      {
       newComment += curChar;
      }
     }
     document.write("<li><b>原文:</b><br>" + comment + "<br>" );
     document.write("<li><b>标记“莲”字:</b><br>" + newComment + "<br>" );
    -->
    </script

  • 二。JavaScript数据的表示:
      1. 整数:由正负号、数字构成,八进制、十进制、十六进制;
      2. 浮点数:由正负号、数字和小数点构成,常规记数法、科学记数法;
      3. 逻辑值:true、false
      4. 字符串值:单引号、双引号
      5. 空值:null
      6. 未定义值:根本不存在的对象、已定义但没有赋值的量;
  • 三。JavaScript常量:
      1. 布尔常量:true  false
      2. 整数常量:3721  0007  0xaff(0Xaff)
      3. 浮点数常量:3.14  .001  3.721e+3  -3.721E-3
      4. 字符串常量:"你的E-mail地址有误!"
      5. 含转义字符的字符串常量:

        转义字符意义
        \b退格(Backspace)
        \f换页(Form feed)
        \n换行(New line)
        \r返回(Carriage return)
        \t制表符(Tab)
        \'单引号(')
        \"双引号(")
        \\反斜线(\)

        document.write("我爱\'JavaScript\'") 

        document.write("文件在c:\\windows\\下") 

        document.write("<pre>未满十八岁\n不得进入!</pre>") 

        document.write("未满十八岁<br>不得进入!") 

        document.alert("密码不对\n请重新输入!") 

        数组常量:
        hobby=["听音乐","看电影"]
        hobby[0]、hobby[1]
        hobby=["听音乐",,"看电影",] 
        hobby[0]、hobby[1]、hobby[2]、hobby[3]
  • 四。JavaScript变量:
      1. 变量命名规则 
  • 1.首字符必须是大写或小写的字母或下划线(_)或美元符($);
  • 2.后续的字符可以是字母、数字、下划线或美元符;
  • 3.变量名称不能是保留字;
  • 4.长度是任意;
  • 5.区分大小写;
  • 6.约定:集中置顶;
       使用局部变量;
       易于理解;stdId
       避免混乱。usrname  usrName
    声明变量:
  • var stdId;
  • var name,sex;
  • var total=3721;
  • var notNull=true;
  • var name="李小龙",sex="先生";
  • var i=j=0;
变量赋值:
stdId = 2004007; 变量作用域:(方式、位置)
  • 全局变量:省略var,或在函数外声明
  • 局部变量:在函数内声明
  • 全局变量可在整个脚本中被使用,可在不同的窗口中相互引用(指定窗口名)
  • 例:
    <Script>
    var langJS = "JavaScript"; //langJS是全局变量
    test();

    function test() {
        var langVBS = "VBScript"; //langVBS是局部变量
        document.write("<LI>" + langJS);
        document.write("<LI>" + langVBS); 
    }

    document.write("<LI>" + langJS);
    document.write("<LI>" + langVBS);
    </Script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript全栈工程师是指能够熟练掌握JavaScript语言,并且能够在前端和后端开发中灵活运用的工程师。以下是成为JavaScript全栈工程师的一些步骤和技能: 1.掌握JavaScript语言的基础知识,包括语法、数据类型、函数、面向对象编程等。 2.学习前端开发框架,如React、Angular、Vue等,掌握HTML、CSS等前端技术。 3.学习后端开发框架,如Node.js、Express、Koa等,掌握数据库技术,如MySQL、MongoDB等。 4.了解RESTful API的设计和开发,能够使用AJAX等技术进行前后端数据交互。 5.熟悉版本控制工具,如Git等。 6.具备良好的编程习惯和团队协作能力。 以下是一个使用MEAN框架搭建的简单Web应用的例子: ```javascript // 引入依赖 const express = require('express'); const bodyParser = require('body-parser'); const mongoose = require('mongoose'); // 连接数据库 mongoose.connect('mongodb://localhost:27017/myapp', { useNewUrlParser: true }); // 定义数据模型 const Schema = mongoose.Schema; const userSchema = new Schema({ name: String, age: Number }); const User = mongoose.model('User', userSchema); // 创建Express应用 const app = express(); // 解析请求体 app.use(bodyParser.json()); // 定义路由 app.get('/users', async (req, res) => { const users = await User.find(); res.json(users); }); app.post('/users', async (req, res) => { const { name, age } = req.body; const user = new User({ name, age }); await user.save(); res.json(user); }); // 启动应用 app.listen(3000, () => { console.log('App listening on port 3000!'); }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值