JS基础知识总结(1)

  1. JS解析器

    JS解析分为两个步骤

    1. JS预解析

      1. 找东西

        • var
        • function
        • 参数
      2. 所有的变量在正式运行代码之前,都提前赋了一个值:未定义
      3. 所有的函数,在正式运行代码之前,都是整个函数块
      4. 注意:
        • 遇到重名的:只能留下一个
        • 变量和函数重名,只留下函数
        • 遵循后来居上的准则
    2. 逐行解读代码
      1. 表达式: = + - * / % ++ -- !  参数    ==>  改变值
      2. 表达式可以改变预解析的值
  2. 作用域

    1. 作用:读、写
    2. 域:空间、范围、区域
    3. 注意:
      • script  是全局变量 全局函数  单线程 自上而下
      • 函数 由里到外
      • firefox  不能对下面的函数进行预解析
  3. 函数调用方式

    1. 函数调用
    2. 直接调用
    3. 事件调用
    4. setInterval / setTimeout
    5. clearInterval / clearTimeout
  4. 定时器

    1. setInterval(函数,毫秒):重复不断的执行(发动机)
    2. setTimeout(函数,毫秒):执行一次(炸弹)
  5. 数据类型

    1. 数字(NaN)
    2. 字符串
    3. 布尔值
    4. 函数
    5. 对象(obj [] {} null)
    6. 未定义
    7. 注意:
      • 数字的比较与字符串的比较:字符串的比较是一个一个字符比较
      • isNaN : is not a number 不是个数字
      • isNaN():
        1. 判断某些值是不是数字
        2. 不喜欢数字
        3. 内部依靠Number()进行转换
  6. 数据类型转换

    • 显示类型转换

      1. Number()

        • 整体转换
        • 空的字符串转换为0
        • true=1 false=0
        • NaN
        • 不要转换函数
        • 空数组为0
        • json为NaN
        • null = 0
        • 未定义 = NaN
      2. parseInt(b,10)
        • 10表示转换为10进制数字
        • 一个一个字符进行转换
        • 认  + - 号
      3. parseFloat()
    • 隐式类型转换
      1. + 变成字符串
      2. - * / % 变成数字
      3. ++ -- 变成数字
      4. >   <  数字的比较/字符串的比较
      5. ! 取反  把右边的数据类型转换为布尔值
    • 注意
      1. == 比较值的大小
      2. === 比较数据类型
      3. 一旦所有的转换不成功,都会显示NaN
      4. 一旦程序中出现了NaN,肯定进行了非法的运算
      5. NaN 是false
      6. NaN 跟自己都不相等
      7. NaN 不是数字的数字类型
  7. 真假问题

      • 非0的数字
      • 非空字符串
      • true
      • 函数
      • 能找到的元素
      • []
      • {}
      • 0
      • NaN
      • 空字符串
      • false
      • 不能找到的元素
      • null
      • 未定义
  8. return返回值

    1. 函数名+括号:fn1() ==> return 后面的值
    2. 所有的函数默认返回值
    3. return 后面的代码都不操作了
  9. 参数

    1. 实参 == 实际传递的参数
    2. 形参 == 形式上
    3. arguments
      • 实参的集合
      • 当函数的参数个数无法确定,就用arguments
  10. getComputedStyle

    • 获取到的是计算机(浏览器)计算后的样式   //  IE6 IE7 IE8不兼容
    • FF4.0之前  旧的火狐下getComputedStyle(obj,true);
  11. currentStyle

    • 标准的浏览器不兼容
    • 注意:
      • background:url()  复合样式  不要获取
      • background:#ccc  单一样式  不要比较
      • 不要有空格
时间: 2024-10-27 16:45:56

JS基础知识总结(1)的相关文章

JS基础知识回顾:引用类型(一)

在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起,而对象时引用类型的一个实例. 尽管ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构,所以虽然说引用类型与类看起来想死,但他们并不是相同的概念. 不过引用类型有的时候也可以被称为对象定义,因为他们描述的是一类对象所具有的属性和方法. 新对象是使用new操作符后跟一个构造函数来实现的,构造函数本身就是一个函数,只不过该函数时处于创建新对象的目的而定义的. ECMASc

NodeJs&gt;-------&gt;&gt;第三章:Node.js基础知识

第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info  方法 1 console.log("this is a test string."); 1 node app1.js 1> info.log 1 console.log("This is a test String ."); 2 3 //从第二个参数开始,依序输出所有的字符串 4 console.log("%s","

JS 基础知识4 运算符

JS的运算符一般含有: 1 算术运算符 2 相等运算符 3 关系运算符 4 字符串运算符 5逻辑运算符 6位运算符 7 赋值运算符 首先看算术运算符,它一般有(+,-,*,/,%,++,--) 这里,%模运算符,其实也就是取余的意思,比如,5%2=1: 这里要特别说一下++,与--(这里只列了++,--是一样的道理). 1 var i = 1; 2 var j = ++i; //实际相当于 i+=1;j=i; 3 alert(i + " " + j); 4 5 var m = 1; 6

JS 基础知识2 传值和传址

要知道传址跟传址,首先我们先了解下数据值的操作. 1复制:可以把它赋值给一个新的变量 2传递:可以将他传递给一个函数或者方法 3比较:可以与另外一个值比较,判断是否相等 简要介绍下传值: 当一个数据是通过值被操作的,那么关系到的是数据的值,在赋值的过程中,是对实际值进行了COPY,储存在一个变量或者属性或数组中,copy的值与原数据是相互独立的. 当数据通过值传递给一个函数时,数据的一份传递给这个函数,如果函数体修改了这个值,只在函数体受影响,函数外的原数据不受影响. 当一个数据通过值和另外一个

JS 基础知识3 变量

变量和数值相关,它储存了那个值,有了变量就可以储存操作数据了. js与其他语言不同,它是非类型的.就是变量可以存放任何类型的值,而其他语言需要存放特定类型的值. var i=5; i="fdsfad"; 这是合法的. 变量的声明一般是由VAR 关键字声明的 var i,sum; //一次声明两个变量,   若变量没有给定初始值,则值为“undefined” 在JS中多次声明同一个变量,是不会出错的,仅仅是给变量赋值的性质. 还有一种,不用var关键字声明变量,则JS会隐式的声明该变量,

JS基础知识回顾:在HTML中使用JavaScript

想HTML页面中插入JavaScript的主要方法就是使用<script>元素. HTML4.01当中为<script>元素定义了下列6个属性: language(已废弃):原来用于表示编写代码使用的脚本语言,如JavaScript.JavaScript1.2.VBScript等,由于大多数浏览器会忽略此属性,因此就没有必要再用了: type(可选):可以看成是language的替代属性,表示编写代码使用的脚本语言的内容类型,也被称作MIME类型,在未指定此属性的情况下会被默认为t

JS基础知识回顾:ECMAScript的语法(一)

任何语言的核心都必然会描述这门语言最基本的工作原理,而描述的内容通常都要涉及这门语言的语法.操作符.数据类型.内置功能等用于构建复杂解决方案的基本概念. ECMAScript中的一切变量.函数名.操作符都区分大小写. ECMAScript的标识符要符合下列规则:第一个字符必须是字母.下划线或美元符号:其他字符可以是字母.下划线.美元符号或数字. 标识符中的字母也可以包含扩展的ASCII或Unicode字母字符,但是并不推荐. 按照惯例,ECMAScript标识符采用驼峰大小写的格式来书写,尽管没

JS基础知识回顾:引用类型(四)

每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法. 由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定. 函数的声明有以下三种形式: function sum(num1,num2){return num1+num2;}//利用函数声明语法定义 var sum=function(num1,num2){return num1+num2;}//利用函数表达式定义 var sum=new Function("num1","nu

JS基础知识回顾:引用类型(二)

ECMAScript中的Date类型是在早期Java中的java.util.Date类基础上构建的. 因此,Date类型使用自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日午夜零点开始经过的毫秒数来保存日期. 在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日或之后的285616年. 要创建一个日期对象,使用new操作符和Date构造函数即可:var now=new Date(); 在调用Date构造函数而不传递参数

JS基础知识回顾:变量、作用域和内存问题

ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值指的是简单的数据段,而引用类型值指的是那些可能由多个值构成的对象. 引用类型的值是保存在内存中的对象,与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间. 在操作对象时,实际上是在操作对象的引用而不是实际的对象. 在很多语言中,字符串以对象的形式来表示,因此被认为是引用类型的,ECMAScript放弃了这一传统. 定义基本类型值和引用类型值的方式是类似的:创建