javascript的执行过程, 语法错误和运行时错误?
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的执行过程, 语法错误和运行时错误?的更多相关文章
- Javascript的执行过程详细研究
下面我们以更形象的示例来说明JavaScript代码在页面中的执行顺序.如果说,JavaScript引擎的工作机制比较深奥是因为它属于底层行为,那么JavaScript代码执行顺序就比较形象了,因为我 ...
- JavaScript的执行过程(深入执行上下文、GO、AO、VO和VE等概念)
JavaScript的执行过程 前言 编写一段JavaScript代码,它是如何执行的呢?简单来说,JS引擎在执行JavaScript代码的过程中需要先解析再执行.那么在解析阶段JS引擎又会进行哪些操 ...
- 游览器中javascript的执行过程
在讲这个问题之前,先来补充几个知识点,如果对此已经比较了解可以直接跳过 大多数游览器的组件构成如图 在最底层的三个组件分别是网络,UI后端和js解释器.作用如下: (1)网络- 用来完成网络调用,例如 ...
- 浅谈javascript函数执行过程
javascript函数执行过程: 1. 为函数创建一个执行环境 2. 复制函数的 [[scopes]] 属性中的对象构建起执行环境的作用链域 3. 创建函数活动对象并推入执行环境作用链域的前端 4. ...
- 浅谈 JavaScript new 执行过程及function原理
前言 最近在学习JavaScript语言精粹,感觉写得相当不错.所以这里也算是总结一下.一个方法使用new的方式创建到底是怎样的过程,一个function的声明内部又是怎样执行的呢 另外学的过程中,不 ...
- javascript eval 执行过程
当执行eval时,会执行如下过程 eval(x): 1.如果 x的类型不是string,那么会return x; 2.把x转换成 ecmascript 代码.如果转换失败,责抛出SyntaxError ...
- Javascript代码执行过程-《悟透Javascript》笔记
本文摘录自李战老师<悟透Javascript>一书的部分章节,为适应博客发表作了一点点修改. 1) 预编译分析. JavaScript执行引擎将所有定义式函数直接创建为作用域上的函数变量, ...
- 用友U8合同执行单保存报错,提示“语法错误或违反访问规则”
问题描述 用户参照合同录入第一阶段的执行单,保存时提示“语法错误或违反访问规则”,其他合同均正常,只有这张合同出现这个问题. 解决过程 语法错误或违反访问规则是SQL Server常见的报错,但其他合 ...
- javascript的执行顺序(转载)
之前从JavaScript引擎的解析机制来探索JavaScript的工作原理,下面我们以更形象的示例来说明JavaScript代码在页面中的执行顺序.如果说,JavaScript引擎的工作机制比较深奥 ...
随机推荐
- caffe中的caffemodel参数提取方法
需要的文件为:deploy.prototxt caffemodel net = caffe.Net(deploy.txt,caffe_model,caffe.TEST)具体代码: import caf ...
- kali漏洞扫描
nmap (apt-get install nmap) nmap从初级到高级 ------------------------------ Nessus (dpkg -i Nessu ...
- html5-select和datalist元素
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- aic bic mdl
https://blog.csdn.net/xianlingmao/article/details/7891277 https://blog.csdn.net/lfdanding/article/de ...
- Sitecore系统教程之模板理解
Sitecore中的所有内容都是一个项目.模板也是如此.Sitecore中的模板是一个项目,它定义了其他项目的结构和行为.Sitecore中的每个项目都是某个模板的实例.模板还可以定义它分解成的部分和 ...
- sitecore系统教程之体验编辑器
体验编辑器是一个WYSIWYG编辑器,允许您直接在页面上轻松更改项目.您可以编辑页面上可见的所有项目 - 文本,图形,徽标,链接等. 在体验编辑器中,您可以编辑当前项目的字段以及页面上呈现的任何项目的 ...
- 【Redis学习之五】Redis数据类型:列表和散列
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 redis-2.8.18 一.列表 基于Linked Lis ...
- 【爬虫】biqukan抓取2.0版
#!python3.7 import requests,sys,time,logging,random from lxml import etree logging.basicConfig(level ...
- 了解一下UTF-16
1)先啰嗦一下 UTF-16是一种编码格式.啥是编码格式?就是怎么存储,也就是存储的方式. 存储啥?存二进制数字.为啥要存二进制数字? 因为Unicode字符集里面把二进制数字和字符一一对应了,存二进 ...
- AtCoder Beginner Contest 044 C - 高橋君とカード / Tak and Cards
题目链接:http://abc044.contest.atcoder.jp/tasks/arc060_a Time limit : 2sec / Memory limit : 256MB Score ...