`

JS和JSP的共同使用(JS的字符串定义、null值的判断、变量的定义)

阅读更多
1.signin.jsp
<%
    String errMessage = null;
    Object obj = request.getAttribute("errorinfo");
    if(obj != null){
        errMessage = obj.toString().trim().toLowerCase();
    }
%>

<script type="text/javascript">
    function errorLogin(){
      var num = String("<%=errMessage%>");
          if(num !== "null"){
              document.getElementById("error_login").innerHTML = "username or password is wrong !";
       }
    }
</script>

<body onload="javascript:errorLogin();">
   <span id="error_login" class="error" ></span>
</body>

 2. 上面的代码经过了我好长时间的修改才成功了,主要是对于JS中的null和"",这两个空值不熟悉的原因,在加上如何定义JS里面的字符串和变量,这些都不是很熟悉,所以才那样。

     现在解释下:

     (1)初始时:<%=errMessage%>为null,当时的写法是:var num = <%=errMessage%>; if(num !== null),

这样看上去很正确其实是不对的。初始时是正确的但是当我有值时即num=failed,<%=errMessage%>从request获取来的值为failed,这时报“failed未定义”的异常??

      (2)为什么会出现上面的异常呢?然后我去查JS如何定义变量?

      (3)又查了JS如何定义字符串??

            这样来定义了:var num = String("<%=errMessage%>"); 有了(4)中的 String(null-> "null",初始时

<%=errMessage%>的值为null,这样转化成String类型为"null",紧接着我用if(num !== "null"),这样在以后的num="failed"的时候,这时候就没报failed未定义的异常了,因为我把它转化成了String,这就是JS如何定义字符串。

这样就搞定了我的问题了。

      (4)到String的转换关系?

          String(undefined) -> "undefined" ,String(null-> "null" ,  String(""-> "" , String(0-> "0"
          String(
false-> "false"

      (5)它们的typeof类型?

           typeof(undefined) == 'undefined' ,typeof(null== 'object' ,typeof(""== 'string' ,

           typeof(0== 'number' ,typeof(false== 'boolean'

 

3. 全等号和非全等号(=== 和 !==)
     (1)这两个运算符所做的事情与等号和非等号(==和!==)相同,只是它们在检查相等性前,不执行类型转换。
    (2)例如:
       var sNum = "66";
          var iNum = 66;
          alert(sNum == iNum);	//输出 "true"
          alert(sNum === iNum);	//输出 "false"
          在这段代码中,第一个 alert 使用等号来比较字符串 "66" 和数字 66,输出 "true"。
          如前所述,这是因为字符串 "66" 将被转换成数字 66,,然后才与另一个数字 66 进行比较。
          第二个 alert 使用全等号在没有类型转换的情况下比较字符串和数字,当然,字符串不等于数字,
          所以输出 "false"。

     (3)非全等号由感叹号加两个等号(!==)表示,只有在无需类型转换运算数不相等的情况下,才返回 true。
	例如:
	var sNum = "66";
	var iNum = 66;
	alert(sNum != iNum);	//输出 "false"
	alert(sNum !== iNum);	//输出 "true"
	这里,第一个 alert 使用非等号,把字符串 "66" 转换成数字 66,使得它与第二个运算数 66 相等。
           因此,计算结果为 "false",因为两个运算数是相等的。第二个 alert 使用的非全等号。
           该运算是在问:"sNum" 与 "iNum" 不同吗?这个问题的答案是:是的(true),
          因为 sNum 是字符串,而 iNum 是数字,它们当然不同。

 

分享到:
评论
1 楼 小蝶兒 2013-01-07  
 

相关推荐

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    JSPExample11.jsp 解析字符串的子字符串 stringOP.html 页面数据提交至JSPExample12.jsp JSPExample12.jsp 字符串替换 JSPExample13.jsp 字符串大小写转换、反转等操作 logon.html 页面...

    EL表达式的详细使用

    将请求参数名称映射到单个字符串参数值(通过调用 ServletRequest.getParameter (String name) 获得)。getParameter (String) 方法返回带有特定名称的参数。表达式 $(param.name) 相当于 request.getParameter ...

    freemarker总结

    这里所说的空值,实际上也包括那些并不存在的变量,对于一个Java的 null值而言,我们认为这个变量是存在的,只是它的值为null,但对于FreeMarker模板而言,它无法理解null值,null值和不存在的变 量完全相同. 为了处理缺失...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    ReturnText Ajax返回字符串数据 ReturnXML Ajax读取XML类型数据 PostUser Ajax提交数据更新服务器内容 xmlhttpWeather 获取天气网站的内容 第11章(/C11/) 11.1.htm 采用标准的...

    jsp九大内置对象

    Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值。  例如:Cookie c = new Cookie("username","john");  (3)将Cookie对象传送到客户端  在JSP中,如果要将封装好的Cookie对象传送到客户端,可...

    EL表达式 (详解)

    ${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope...

    千方百计笔试题大全

    56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 14 59、Java 编程,打印昨天的当前时刻。 15 60、java 和javasciprt 的区别。 15 61、什么时候用assert? 16 62、error和exception有什么...

    java面试宝典

    56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 14 59、Java 编程,打印昨天的当前时刻。 15 60、java 和javasciprt 的区别。 15 61、什么时候用assert? 16 62、error和exception有什么...

    JAVA面试题最全集

    描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符(&lt; &gt; & “”) 3.在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的...

    jsp + oracle分页简单实用

    //数据库连接字符串 java.lang.String strSQL; //SQL语句 int intPageSize; //一页显示的记录数 int intRowCount; //记录总数 int intPageCount; //总页数 int intPage; //待显示页码 java.lang....

    JSP分页代码-数据库连接池+JavaBean+JSP+SQL Server+JDBC3.0的数据库分页技术

    //Countsql:总记录的Query字符串。[形式为select count(*) from tablename] //Pagisql :要分页的Query字符串。[形式为select * from tablename where ...] //request :参数传递过程中的变量。[用来控制翻页时的...

    Java面试宝典2020修订版V1.0.1.doc

    35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集中的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、表连接、子查询的区别是什么?它们可以相互转化吗?你倾向于用...

    超级有影响力霸气的Java面试题大全文档

     JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要...

    java 面试题 总结

    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变...

    Java2实用教程.rar

    5 3字符串与基本数据的相互转化 5 4对象的字符串表示 5 5StringTokenizer类 5 6字符串与字符 字节数组 5 7StringBuffer类 5 8正则表达式 习题 第6章时间 日期和数字 6 1Date类 6 2Calendar类 6 3Math类 6 4...

    JSP分页查询实例代码.doc

    } else {//将字符串转换成整型 intPage = java.lang.Integer.parseInt(strPage); if (intPage ) intPage = 1; } //装载JDBC驱动程序 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //...

    jpivot学习总结.doc

    nullParentValue 如果当前的 Level 是有上下级关系(设置了 parentColumn 属性),如果该 Level 又处于顶级,我们需要将顶级的数据取出来,这里指的是位于顶级的父成员的值,有些数据库不支持 null, 那么也可以使用 ...

    基于j2ee的ajax宝典

    3.3.2 字符串类型···· 67 3.3.3 布尔类型········ 70 3.3.4 undefined和null················ 71 3.4 复合类型···················· 71 3.4.1 对象·······...

    JSTL详细标签库介绍

    &lt;BR&gt;Java使用和C++类似的异常处理&lt;BR&gt;1、处理错误的方法有很多流行方法&lt;BR&gt;2、一般方法是把程序处理代码段分散到系统代码中,在可能发生错误的地方处理错误优点:便于程序员能够条理的看到程序中异常的处理缺点:...

Global site tag (gtag.js) - Google Analytics