JS 章节② 基础应用(上)

1.JavaScript组成

ECMAScript:解释器、翻译
DOM Document Object Model HTML 对象:document
操作HTML的能力
BOM Browser Object Model 浏览器 对象:window

ECMA 几乎没有兼容性问题
DOM 有一些操作不兼容
BOM 没有兼容问题(完全不兼容),一般不使用.

2.变量类型

类型:typeof运算符

常见类型:
number、string、boolean、undefined、object、function

建议:一个变量应该只存放一种类型的数据

undefined出现的情况:

  • 1.真的没定义
  • 2.虽然定义,没有给东西
var a=12;
//alert(typeof a);  //number
a='asdfasd';
//alert(typeof a);  //string
a=true;
//alert(typeof a);  //boolean
a=function ()
{
    alert('abca');
};
//alert(typeof a);  //function
a=document;
//alert(typeof a);  //object
var b; //变量本身没有类型,他要通过类型推到来决定类型,故b是未定义类型
alert(typeof b);    //undefined
//undefined出现的情况:
//1.真的没定义
//2.虽然定义,没有给东西

3.类型转换

parseInt(xxx)
    var a = '12';
    alert(typeof parseInt(a)); //12 number类型

    var a = '12px34';
    alert(parseInt(a)); //12 number类型 遇到px,无法识别出数字,跳出;

    var a = 'abc';
    alert(parseInt(a)); //NaN Not a Number 非数字

    1+parseInt('abc') ; //的结果等于NaN;  parseInt('abc') 他是一个NaN,任何一个数和NaN计算,结果都是NaN;

    var e = parseInt('abc');
    var f = parseInt('edf'); //a和b里面装的都是NaN;
    alert(e==f);  //结果是false; 也就是说这两个变量是不相等的
  • 如何判断一个变量是不是NaN呢?
isNaN(xxx);
var a = parseInt('abc');
alert(isNaN(a)); //结果是ture;

示例代码:



    
    类型转换
    



+




JS 章节② 基础应用(上)_第1张图片
isNaN(xxx)使用示例
  • 2字符转成float类型
parseFloat(xxx);
    var a = '3.5';
    var b = '9';
    alert(parseInt(a)) //结果是 3
    alert(parseFloat(a)); //结果是 3.5
    alert(parseFloat(b)); //结果是 9
var a = 5;
var b = '5';
alert(a==b); //true  学雷锋做好事,先转换类型,然后比较;
alert(a===b); //false  '==='人们一般称作'全等';不转换类型,直接比;
  • 2 例子二:
        var a = '12';
        var b = '5';
        alert(a+b); //125 '+':有两个作用,一是字符串连接;二是数字相加;
        alert(a-b); //7   隐式转换,数字相减;

4.变量的作用域

  • 局部变量 : 只能在定义它的函数里面使用;
    
  • 全局变量: 在任何地方都可以使用;
    

5.闭包

含义:子函数可以使用父函数的局部变量;

    

6.命名规范及必要性

  • 规范

可读性——能看懂
规范性——符合规则

  • 匈牙利命名法
  • 类型前缀
  • 首字母大写
JS 章节② 基础应用(上)_第2张图片
js命名规范
oDiv :指的是一个对象;
var aTxt = document.getElementsByTagName('input'); //aTxt 指的一个数组

7.运算符

算术:+ 加、- 减、* ** 乘、/ 除、% 取模(取余)
实例:隔行变色、秒转时间: 156s >> 156/60分156%60秒 >>>2分36秒

赋值:=、+=、-=、*=、/=、%=
关系:<、>、<=、>=、==、===、!=、!==

逻辑:&& 与、|| 或、! 否
实例:全选与反选

运算符优先级:括号

8.程序流程控制

判断:if、switch、?:(三木运算)
循环:while、for
跳出:break、continue

break : 执行到某个条件时,整个循环中断了
continue : 执行到某个条件时,跳过本次,继续执行后面的;

什么是真、什么是假:
真:true、非零数字、非空字符串、非空对象 (这些全是真的,数组/字典都是对象)
假:false、数字零、空字符串、空对象(null)、undefined (这些全是假的)

9.Json


循环 : Json和数组的区别:


循环使用建议

数组:使用 for (var i=0;i json:使用 for in

你可能感兴趣的:(JS 章节② 基础应用(上))