js中的全局变量和静态变量的使用, js 的调试?- 如果js出错, js引擎 就会停止, 这会 导致 后面的 html中 refer 该函数时, 会报错 函数为定义!!

时间:2023-11-23 09:38:26
  1. 效果里面的函数, 如show, hide,slideDown等, 这些都叫 “效果”函数, 但是里面可以包含动画, 也可以 不包含动画。
    • 动画,是指 元素 的内容 是 逐渐 显示/隐藏的, 不是一下子就 出来的.
    • 如果函数中的参数 speed 或 spe, 不写, (speed的默认值等于0) 就是 "直接效果, 原始效果", 没有 动画的 版本;
    • 如果指定了参数 spe, 就是有动画的版本,

      两者都是 " 效果 " 函数
  2. 效果函数中的 speed, 表示 "中速" 的 关键字 normal, 不是medium.
  3. 关键字slow normal和 fast的速度大概就是: 600ms, 400ms, 200ms.

    speed的取值是大于等于0的, 默认的是0秒, 就是无动画.

4. 关于display:none 和 display:hidden的区别?

  • 要实现元素 "在视觉上不 可见", 有这样3种方法:
 通过jquery的方法: hide(...);
通过设置input的类型 为 hidden;
最后就是通过设置 css样式
  • css样式里面 有: display:none; 和 visibility: hidden. 注意没有display: hidden 这样的样式属性! 也没有 visible: hidden; 这样的属性, visible单词错误, 是visibility: hidden.

js中的全局变量和静态变量的使用, js 的调试?- 如果js出错, js引擎 就会停止, 这会 导致 后面的 html中 refer 该函数时, 会报错 函数为定义!!

  • 要注意display的css属性 ,不要跟position相混淆了, positon是摆放相对位置, 取值: relative, absolute, fixed, inherit..

  • 但是, 在jquery中, 显示和隐藏的筛选选择器是 :hidden, 和 :visible(注意, 不是visibility)

  • 不管是display:none还是 visibility:hidden, 浏览器都要下载并加载元素, 只是由css来控制显示?? 还是浏览器 要下载整个html结构, 只是在渲染加载 的时候忽略?? 我觉得还是前者是正确的!

  • 通过visibility:hidden来 "隐藏" 元素, 只是在 "视觉"上 不可见, 只是 "visual" 属性 , 如: color, background, border...没有了, 但是其他属性如 width, height, line-height 等 "非可视属性" 还是存在并 表现的. 只是用一块 "白色"的区域来表示. 它后面 的元素是要往后面排列的. 而display:none, 则直接所有的属性 都没有的!!!

比如下面的代码, 通过按钮 来 切换显示和隐藏的效果:

$("button").click(function(){

	if($("p").is(":visible")){
$("p").hide("slow");
}else{
$("p").show("slow");
} });

*6. js中的全局变量和静态变量?

下面这些内容是非常重要的:

1. 凡事在 函数 之外的变量, 就是 "全局变量"

2. 没有静态变量的说法, 所谓的"静态"变量就是 通过"全局变量"来实现的

3. javascript的变量, 声明, 有两种方式, 一是: 显式的用var来声明, 这种方法的变量在函数之外的是全局变量, 在函数内部的是局部变量;
二是, 隐式的变量, 不用声明, 直接就使用的, **这种隐式的 变量 是被 当作 "全局"变量来对待的!!** 4. 一个很重要的概念: 函数的定义和函数的执行! 函数的定义只是 一种"静态"的"死"的 代码, 系统 并没有在内存中 为其中的 变量分配内存, 也即是 其中的变量 在内存中 是不存在的, 连 "undefined"都不是! 只有当调用了 函数, 函数被执行后, 变量才会在内存中分配 单元空间, 变量才真实存在!! 其实 函数的定义声明 和函数的执行, 区别也很好理解, 比如: 在函数中 的执行语句, 如alter(...);什么的, 你 定义了函数, 没有调用函数, 这些语句 很显然 都知道 不会执行的!! 5. 变量的生存期 , 是从变量开始建立, 到 程序的结束. 作用域是从 变量建立开始 往下的所有代码行. 只有函数中的 "同名"的 局部变量才会 屏蔽 同名的 全局变量 6. js和php中, 好像没有C语言中的 extern 关键字, 所以要跨文件使用 变量, (一个变量在文件a,和文件b中都可以使用), 都是通过 "include"包含来实现的. 把这些js和php 写成一个公共的文件, 然后 include包含, 或 用 <script src="public.js"> 包含.

7. toggle函数: toggle([speed,[easing],[fn...], [switch]-显示开关!);

  • 特别要注意的是, 最后的这个fn, 不是用来控制元素的 显示或隐藏的, 只是用来 补充 元素在动画完成后的一些动作或提示信息...

  • 元素本身的 显示和隐藏, 是由这个函数本身 内在 就决定了的, - - - "不是: '第一次单击显示, 第二次就隐藏 '", 而是: "如果元素是可见的,切换为隐藏的;只要元素是隐藏的,就切换为可见的。"

  • 注意这个fn, 它可以是 一个,两个, 多个, 反正是 轮流 响应的 被选元素的 click事件.

    如果只有一个函数; 每次toggle完后, 都执行这个函数... 如果有两个函数: 如果有多个函数:

  • 如果不是 元素本身的click事件, 怎么办?

    这里的说法, 是有点问题的, 不应该是 元素 本身的 click事件, 来切换元素本身的显示和隐藏, 因为: 如果元素本身都隐藏了, 怎么来click呢? 应该是 外在的 超链接, 或按钮的 click事件, 来触发, 调用这个toggle函数. 这个经过实践 验证, 就是这样的!!

  • toggle函数, 有一个参数, switch开关, 这个参数也是很有用的: 以前的show,hide方法, 都是写死了的, 要么显示, 要么隐藏, 有时候, 需要根据 某些条件来 决定元素的显示 与否, 这时候, 就要用这个参数了:

像上面的那个功能, 其实不需要写那么多, 只需要 给toggle函数提供一个 boolean变量就可以了!!
$("button").click(function(){ if($("p").is(":visible")){
$("p").hide("slow");
}else{
$("p").show("slow");
} }); ;;; 上面这些代码都不要, 只需要两行代码: (使用 switch开关参数就非常方便) var showOrHide=true;
click函数中:
showOrHide = !showOrHide;
$("p").toggle(showOrHide);

*8. console.log 也主要是用来调试的, 在发行版中要删除, 比alert的功能更强大 , 显示的内容更多, 对数组和对象, 可以显示更完整的信息, 如同在php中的echo和dump, print_r

**js中的window对象, ** 是包含整个窗口的一个对象, 我们平常很多使用的函数方法, 如alert(),confirm, setInterval, setTimeout等都是window的方法,只是在使用window对象的时候,可以不写它

*9. js中的for(i in window)循环?

for有两种形式, 一是传统的 c语言for循环 for(;..;