zoukankan      html  css  js  c++  java
  • 再次遇到 js报错: expected expression, get ')' 或 get ';', '<'等错误?

    很多时候: 其实不是因为 括号) 分号 或者 < 的问题,
    而是 比如变量 的 = 等号 没有值;
    特别可能的是: 少了一个 '}' 也就是 语句 没有 闭合完等等问题

    也就是 不要去 纠结 它报的 那个错, 往往 它说的那个地方是没有问题的! 而是其他 邻近地方的 问题!!

    --- js中 字符串 相等不等 的判断, 就是用 == 和 !== 或用 === !=== 恒等 来比较, 不用函数的

    ==============

    mysql中如何添加和删除 unique约束?

    • 添加时可以在字段 后面直接加 unique来修饰: ..... , name varchar(50) not null unique, ...
      也可以在最后用, unique key name(name) 来说明;
    • 删除唯一性约束: alter table tbl_name drop index unique_key_name` 注意 删除时的关键字时 index , 不是unique key 把唯一性约束看作是 index 索引了.
    • 为了保证数据的完整性, 最好显式的规定 每个字段 不为空: not null,因为很多字符串 字段的默认值是 null, default null这样不好!

    =================================================================

    关于firefox调试器 显示的元素的宽度?

    • computed上的 黄色/褐色/紫色 分别表示的是: margin, border, padding. 它们是用一个环形来表示的, 即使 这个对应的值是0. 也是环形, 便于写对应的数值;
    • 而inspector上, 可以直接让鼠标指向, 上面 的小竖线 的右边 就直接显示了 该元素的宽度 和高度. 可以直接获得, 如果只是看元素的宽度*高度, 就不必到 computed那里看了,
      除非要看详细的 margin/border/padding的时候

    ====================================================
    js代码中 写不写分号并不是 强制规定的. 比如在函数的最后一个语句, 在return, break等语句后就可以不加

    • 你可以不写分号 js会帮你加上分号, 但是它不保证 一定给你添加正确了.
      -所以最好还是写上分号.

    js代码执行顺序?

    第一, JavaScript中的代码块是指由script标签分割的代码段。
    JS是按照代码块来进行编译和执行的,代码块间相互独立,但变量和方法共享(但是 由于js是动态解释执行的, 是一个代码块一个代码块按顺序来加载执行的, 所以如果有多个代码块 scipt1, script2, 那么就是先将 script1代码块 加载到内存(注意这时并不会加载script2代码块), 预编译+执行, script1完了之后, 才去加载第二个代码块script2, 预编译+执行. 所以 只能是后面 的代码块共享 前面的代码块中的 变量或函数. 前面的代码块共享不到后面的代码块中的变量或函数的.

    第二, js的执行分为 预编译期和执行期: 预编译时先将 (仅限于将本代码块内)的 声明式函数 和 var声明式变量提取出来, 做声明, 此时只是声明,变量还没有进行初始化和赋值的, 然后才是进行执行. 所以 如果 在同一个代码块内, 变量赋值语句之前使用该变量, 将不会报错但是该变量的值将会被认为是 undefined. (undefined表示变量已经被声明,但是还没有被赋值)

    第三, 关于代码出错:

    • 函数的错误,仅限于函数内部, 这个错误不会影响到 其他函数 或其他函数外的代码, 除非 一个函数内调用了其他函数, 才会导致其他函数的调用受影响
    • 在受影响区建内, 比如函数内部, 或者 script代码块内, js的代码语句一旦 错误(当然是 已经 经过 预编译后, 在执行的时候了), 那么这条语句后面的任何内容都不会被执行 , 会跳出 当前代码块的全部: 包括 后面语句的任何语句, 任何内容,好像这些都不存在了一样, 那么 变量赋值语句不执行, 变量也不会赋值了(后面代码块虽然可以共享该变量的声明,但是值就是undefined了), 而且 后面的语句中的错误 也不会报告了...
    <script1 type="text/javascript">
          alert(str);//因为没有定义str,所以浏览器会出错,下面的不能运行
          alert("我是代码块一");//没有运行到这里,
          var test = "我是代码块一变量"; 这里不会test被赋值,所以后面共享的只是test的声明
    /script>
    
    <script2 type="text/javascript">
          alert("我是代码块二"); //这里有运行到
          alert(test); //弹出"undefined"
    /script>
    
    • 上面的代码中代码块一中运行报错,但不影响代码块二的执行,这就是代码块间的独立性,一个代码块只的错误不会影响到另一个代码块. 而代码块二中能调用到代码一中的变量,则是块间共享性

    • JS中的函数定义分为两种:声明式函数与赋值式函数(匿名函数)。 声明式函数与赋值式函数的区别在于:在JS的预编译期,声明式函数将会先被提取出来,然后才按顺序执行js代码

    对js的事件处理函数来说,

    • 只有 jquery的click()之类的函数和 addEventListener函数中 才有回调函数, 也才有事件event的参数. 在 元素的onclick函数中, 是没有办法拿到 event事件参数的.
    • 每个元素从上到下会经历 两次 事件(一个是捕获的 向下的事件,一个是 冒泡的向上的事件 ), 两个事件流 是独立的, 互不干扰的. 你都可以得到并进行处理的!
      ..... 要得到 向下的 捕获事件 必须使用 addEventListener 方法.

    首先,无论是冒泡事件还是捕获事件,元素都会先执行捕获阶段。
    从上往下,如有捕获事件,则执行;一直向下到目标元素后,从目标元素开始向上执行冒泡元素,
    即第三个参数为true表示捕获阶段调用事件处理程序,如果是false则是冒泡阶段调用事件处理程序。(在向上执行过程中,已经执行过的捕获事件不再执行,只执行冒泡事件。) 原文链接:https://blog.csdn.net/u013217071/article/details/77613706

    md 的引用: 一个大于符号就行 , 可以有多行, 不需要每一行都用 >, 只要这些行中间没有空行就行, 那么它们就在同一个 引用段落中.

  • 相关阅读:
    日志模块
    DDT数据驱动
    unittest测试框架
    vim编辑器
    文件夹的管理
    文件内容查看(如查看日志)
    文件的移动和拷贝
    文件的增删改查
    linux基本命令
    测试5--模拟一个在控制台不断按时分秒打印的电子表
  • 原文地址:https://www.cnblogs.com/bkylee/p/12386491.html
Copyright © 2011-2022 走看看