data及一些基础知识点

  1. data(基于w3c手册)

var data =new Data();

data.getData()1-31
data.getDay()0-6代表周日到周六
data.getMonth()0-11代表一到十二个月
data.getFullYear()四位数年份
data.getHours() 小时 (0 ~ 23)
data.getMinutes() 分钟 (0 ~ 59)
data.getSeconds() 秒数 (0 ~ 59)
data.getMilliseconds()毫秒(0 ~ 999)
注:返回的是data对象生成那一时刻的时分秒

data.getTime(),时间戳
setTime()和getTime()做比较。完成一些功能。

定时器
在这里插入图片描述
time只在定义的时候被读取一次。无法在外部更改。
定时器用来计算时间不准。
有返回值,返回一个数字作为唯一标识。可以用

setTimeout 推迟一段时间后再执行。对应clearTimeout();
都是window上的方法,this指向全局。

  1. js特色

js是一门解释性语言
编译型语言:通篇翻译,c,c++,效率快,移植性不好。
解释型语言:读取一行解释一行,JavaScript ,php,python 跨平台。

单线程语言:
js执行队列:轮转时间片:ms级。

ECMA标注
js三大部分:ECMAScript DOM BOM

  1. 浏览器组成:shell和内核

主流浏览器:
IE内核:trident
Chrome: webkit/blink
firefox : Gecko
Opera: presto
Safari : webkit

  1. js基本语法

变量声明单var。_, , ,字母开头,_, ,字母数字组成,不可以用关键字和保留字作为变量名

原始值: Number String Boolean undefined null
引用值: array Object function data RegExp

stack和heap

steak(栈):放的原始值,不可改变的。
var a=100;
var b=a;
a=200;
则b=100

heap(堆):放的引用值。
var arr=[1,2];
var arr1=arr;(放在栈内存里的数组地址)
若arr.push(3);
则arr1=[1,2,3];
若arr=[1,3];
则arr1=[1,2];

  1. 运算:自左向右,先括号

+:数学运算,字符串连接,任何类型和字符串相加都变成字符串。
NAN属于number
a+=10+1则a=21
a++:先执行后++
++a:先++后执行

  1. 条件语句 if ,if else, for, switch case, break,continue

break必须写在循环里面,执行并且停止。
continue跳过本次循环,进入下一次循环。

  1. 数组

遍历数组:利用for循环和arr.length

  1. 对象

var 变量名={
属性名:“属性值”,
属性名:“属性值”,
属性名:“属性值”,
}

  1. typeof操作符

typeof();或者加空格。
六种数据类型; number string boolean object undefined function
null 是object。

  1. 显式类型转换
    Number()
    parseInt(a,16):以16进制为基底,转换为10进制。参数为2-36.
    从数字位开始往后看,一直到非数字位置截止。
    parseFloat:
    demo.String(8)
    toString();{undefined 和null不可以用这个方法}。
    Boolean():false 空字符串 0 null undefined时返回false
    应用:将2进制转化成16进制
    先用toString 再用parseInt

  2. 隐式类型转换

isNAN(),在内部会调用number()先进行转换。
undefined为true
null为false

++/-- / +/-(一元正负) 在内部会调用number()先进行转换。
+(加号):有字符串类型时候调用string();

  • / % :number()
  • && 和|| ! Boolean();
  • == /!=:Boolean();

undefined =null true
undefined null=0/<0 或者>0都是false

===绝对相等
NAN不等于自己

typeof( ),内部的变量不先定义不报错
返回undefined。为字符串类型

tofixed(),保留几位有效数字,四舍五入

  1. 函数,初始作用域

函数声明:函数命名符合小驼峰原则
function test(){
}

命名函数表达式:var test=function test( ) {
}
忽略test。text为函数名。
故多使用匿名函数表达式,函数表达式一般指匿名函数表达式

匿名函数表达式
var test=function(){
}

参数:相当于在函数内部声明了变量。
形式参数和实际参数的数量可以不相等

arguements:实参列表。
arguements.length:实参长度。
函数名.length:形参长度。
arguements和形参同变化,但是不是同一个变量,符合映射规则。但是形参和实参个数不相等的时候不映射。

返回值:
return:终止函数,返回变量。return后面的语句不执行。

  1. 递归

递归:1,找规律 ;2,找出口。
只能让代码更加简洁,但是浪费资源,会拖慢运算速度。
典型:求阶乘和费伯纳斯数列。

  1. 预编译

js执行三部曲: 语法分析 预编译 解释执行

预编译时:函数声明整体提升,函数变量,声明提升。

imply global:暗示全局变量,任何变量未经声明赋值,归window所有。
全局上的任何变量,全是window的属性。
即,window就是全局的域。

预编译四部曲:预编译发生在函数执行的前一刻。
1创建AO(活跃)对象,即执行期上下文。
2找形参和变量声明,作为AO对象的属性名,属性值为undefined。
3将实参和形参相统一。
4在函数体里找函数声明,并赋予函数体。

在全局也会产生预编译环节,会生成GO对象。window就是GO。

在函数里如果暗示全局变量会在window存储该变量。
先生成GO在生成AO。函数里的if不用考虑,里面的变量和函数声明都提出来。

空字符串Boolean值为0
空格字符串的Boolean为1

猜你喜欢

转载自blog.csdn.net/qq_43335204/article/details/83015985