js的执行错误分为 语法syntaxError,和 runtime error,
首先, js引擎会检查 整个脚本的语法, 如果在检查语法的过程中,发现了错误, 比如括哈不配对, 字符串少了 另一半的引号等等, 那么一开始就不会执行...

但是, 语法正确, 脚本开始执行, 并不表示后面的执行过程一直都正确, 因为还会出现运行时的错误, 如: referenceError等错误.

如果你感觉没有语法错误, 而js从某个语句开始, 其后面的语句不能执行, 那么一定是 这个语句之前的 某个地方, 某个语句出错了. 所以 从这个语句开始之后的 代码就不能执行了.


对于一个变量来说, 只有 "定义" 和 "引用" 两种说法,
定义一个变量, 即初始化这个变量;
其他地方, 对这个变量的使用, 都叫做 "引用"

js中代码的作用域的概念

子域的变量, 可以引用 父域的变量, 即父域的变量在子域中, 是可见的 visible. 但是反之不亦然: but not vice versa.
而子域中的变量, 在 父域中, 则是不可见的:

js虽然是弱类型语言, 但是, 它有一个要求就是: 在 reference 引用一个变量之前, 这个变量 "必须"是 "显式的" 定义过了的. 否则你一拿起就使用它, 那么必然的就会出错, 注意是出错, 不是警告. 相应的, 后面的代码就不会被执行!!


为什么submit按钮 用ajax方式 提交时, 会自动回到 本页面? 有返回的信息时, 只是闪一下就没有了?

是因为, submit类型的按钮, 在单击时, 会在 "最后" 默认的 "即使你不写"的情况下, 都会执行 它的 默认的动作, 即提交: 但是由于你没有写action, 所以他就提交到 当前页面, 所以, 当前页面就又刷新了一次... 应该在js的最后 返回false;

书写代码一般按照 规范来书写, 但是也没有必要完全按照规范来写, 一般能够理解就可以了.

ajaxReturn(data, 'type'...)其中的type类型只有四种方式: json, jsonp, xml, eval, 这些返回的type类型, 本身就有header类型声明, 而且已经做了xml_encode, json_encode编码的了...


通常默认的ajaxReturn返回类型就是json. 如果你只是为了返回 "字符串" 就可以不写这个, 采用默认的 json类型就可以了;
xml类型和eval类型(eval类型是为了返回能执行的js代码)一般比较少用, 而jsonp基本就不会用到..

但是, 如果你写错了ajaxReturn类型, 则不会返回任何东西, 或者说, 返回为null. 空.

javascript的执行过程, 语法错误和运行时错误?的更多相关文章

  1. Javascript的执行过程详细研究

    下面我们以更形象的示例来说明JavaScript代码在页面中的执行顺序.如果说,JavaScript引擎的工作机制比较深奥是因为它属于底层行为,那么JavaScript代码执行顺序就比较形象了,因为我 ...

  2. JavaScript的执行过程(深入执行上下文、GO、AO、VO和VE等概念)

    JavaScript的执行过程 前言 编写一段JavaScript代码,它是如何执行的呢?简单来说,JS引擎在执行JavaScript代码的过程中需要先解析再执行.那么在解析阶段JS引擎又会进行哪些操 ...

  3. 游览器中javascript的执行过程

    在讲这个问题之前,先来补充几个知识点,如果对此已经比较了解可以直接跳过 大多数游览器的组件构成如图 在最底层的三个组件分别是网络,UI后端和js解释器.作用如下: (1)网络- 用来完成网络调用,例如 ...

  4. 浅谈javascript函数执行过程

    javascript函数执行过程: 1. 为函数创建一个执行环境 2. 复制函数的 [[scopes]] 属性中的对象构建起执行环境的作用链域 3. 创建函数活动对象并推入执行环境作用链域的前端 4. ...

  5. 浅谈 JavaScript new 执行过程及function原理

    前言 最近在学习JavaScript语言精粹,感觉写得相当不错.所以这里也算是总结一下.一个方法使用new的方式创建到底是怎样的过程,一个function的声明内部又是怎样执行的呢 另外学的过程中,不 ...

  6. javascript eval 执行过程

    当执行eval时,会执行如下过程 eval(x): 1.如果 x的类型不是string,那么会return x; 2.把x转换成 ecmascript 代码.如果转换失败,责抛出SyntaxError ...

  7. Javascript代码执行过程-《悟透Javascript》笔记

    本文摘录自李战老师<悟透Javascript>一书的部分章节,为适应博客发表作了一点点修改. 1) 预编译分析. JavaScript执行引擎将所有定义式函数直接创建为作用域上的函数变量, ...

  8. 用友U8合同执行单保存报错,提示“语法错误或违反访问规则”

    问题描述 用户参照合同录入第一阶段的执行单,保存时提示“语法错误或违反访问规则”,其他合同均正常,只有这张合同出现这个问题. 解决过程 语法错误或违反访问规则是SQL Server常见的报错,但其他合 ...

  9. javascript的执行顺序(转载)

    之前从JavaScript引擎的解析机制来探索JavaScript的工作原理,下面我们以更形象的示例来说明JavaScript代码在页面中的执行顺序.如果说,JavaScript引擎的工作机制比较深奥 ...

随机推荐

  1. mysql优化(四)

    一.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where / group by / order by 涉及的列上建立索引. 1.索引失效情况. SQL什么条件会使用索引? 当字段上建有索引时, ...

  2. HDU 6300

    Problem Description Chiaki has 3n points p1,p2,…,p3n. It is guaranteed that no three points are coll ...

  3. 终极解决liunx GUI 无法显示中文的问题。

    为linux安装字体 Linux字体文件放在/usr/share/font/,只要将字体文件拷贝到这里就可以了.这里示例安装Windows的所有字体. 2,复制Windows下 的所有字体.cd命令切 ...

  4. ==与Equals的作用

    string str1 = "Blackteeth"; string str2 = str1; string str3 = "Blackteeth"; Cons ...

  5. 多线程实现Thread.Start()与ThreadPool.QueueUserWorkItem两种方式对比

    Thread.Start(),ThreadPool.QueueUserWorkItem都是在实现多线程并行编程时常用的方法.两种方式有何异同点,而又该如何取舍? 写一个Demo,分别用两种方式实现.观 ...

  6. sql server 将两列的值合并到另一列

    select top 100 t2.FullName, * from Subject,(select id, isnull(first_name,'') +isnull(middle_name,'') ...

  7. 即时通信系统中实现聊天消息加密,让通信更安全【低调赠送:C#开源即时通讯系统(支持广域网)——GGTalk4.5 最新源码】

    在即时通讯系统(IM)中,加密重要的通信消息,是一个常见的需求.尤其在一些政府部门的即时通信软件中(如税务系统),对即时聊天消息进行加密是非常重要的一个功能,因为谈话中可能会涉及到机密的数据.我在最新 ...

  8. 批量下载网站图片的Python实用小工具(下)

    引子 在 批量下载网站图片的Python实用小工具 一文中,讲解了开发一个Python小工具来实现网站图片的并发批量拉取.不过那个工具仅限于特定网站的特定规则,本文将基于其代码实现,开发一个更加通用的 ...

  9. mybatis源码解析2---SqlSessionFactoryBuilder、SqlSessionFactory解析

    1.先看一个mybatis最简单的Demo String resource = "mybatis-config.xml"; //1.流形式读取mybatis配置文件 InputSt ...

  10. 20165215 2017-2018-2《Java程序设计》第一周学习总结

    20165215 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 跟随网课学习了<Java2 实用教程>的第一章,进行了基础的编译练习 在Ubun ...