JS基础知识

数据类型

检测数据类型 --- typeof 数据

数据类型:number(数字/NaN) 、 string(字符) 、 bollean(布尔) 、 object(对象 / null) 、 underfined(没定义) 、 function

数据类型分2大类:基本(不可分) -- number / string / boolean / underfined 、复合(可分) -- object  / function

-------

类型转换

parseInt(数据) --> 整数

-转换失败 返回 NaN

-NaN的数据类型是number

NaN加上任何数都等于NaN

NaN不等于任何数,包括他自己

NaN == 非法数字

isNaN(数据) --> 判断数据是不是非法数字 返 true / false

a.显示转换

-parseInt

1.干掉小数,字符 --> 整数

2.从左到右找能转的转

3.忽略字符的前导0,后导0

4.做进制转换 --> 10

-parseFloat

1.转小数

2.同上

-Number

1.转数

2.严格型转换(先看一下有不能转的就返回NaN)

b.隐式转换(Number)

-  *  /  ==

' ' + 数字 -->  '110'  数字到字符

注意: === 不隐转

-------

取反    !数据(数字、字符、布尔) -- 把状态颠倒

-------

字符的方法

strObj.charAt(下标)          给:下标      返:字符/null

strObj.indexOf(字符)        给:字符      返:下标/-1(-->)

strObj.lastIndexOf(字符)  给:字符      返:下标/-1(<--)

strObj.substring(开始位置,结束位置)    不包含结束位置,只有开始位置就默认从开始位置-结尾

strObj.split(规则) 切割      给:规则      返:数组(找不到规则返回数组长度1就本身)

规则--在字符里找

strObj.toLowerCase()        小写

strObj.toUpperCase()        大写

*** 字符一旦创建无法修改,除非销毁

例子:判断浏览器、判断文件后缀

a.判断浏览器

Chrome(谷歌) /  Firefox(火狐) / rv:11 or MSIE7-10(IE)

if(window.navigator.userAgent.indexOf('Chrome')!=-1){alert("谷歌")}

b.判断文件后缀名

var file = "xxx.png";

document.write(file.substring(file.lastIndexOf(".")+1,file.length));

-------

数组

var arr = [] / new Array()

arr.length=0;  //清空数组 独有

数组内最好放相同数据

数组方法

修改原数组:arrObj.push(数据)  返回-数组长度

arrObj.pop()    返回-删除的数据/underfind

arrObj.unshift(数据)    返回-数组长度

arrObj.shift()    返回-删除的数据/underfind

arrObj.splice(其实位置,要删除的个数,要插入的元素)

arrObj.join(规则) --- 规则自个发明

arrObj.reverse()  反转数组

arrObj.sort(n1,n2){return n1-n2}  排序

不会修改原数组:arr1.concat(arr2) 连接数组  返回-新数组

-------

JSON

理解:给变量打了个包,属性和值配对儿,键值对儿

*** 属性都是字符

json没有length

循环json  用 for in(枚举)

数据解析  string: "{}"  "[]"

a. substring --> split --> for in

b. eval("("+str+")")

c. JSON.parse(str)    json-->string

d. JSON.stringify(json)  string-->json

-------

Function

参数:个数 没有限制

参数和变量一样没有数据类型

函数定义在哪里不重要 重要的是在哪里执行!

***变量的值以调用为准

返回值:函数可以返回一个东西(没有类型)!

-function 函数名 (参数列表){return 值;}

-注意:函数没有执行一次都会复制一份!

-特性:a.返回值没有明确类型

b.return 后面的代码不执行

c.return;  返回一个underfined

d.没有return 默认会返回一个 underfined

e.只有函数才有返回值

封闭空间闭包 自执行函数

-( function( index ){ js代码 } )( i );

-原理:函数每执行一次都会复制一份,包括里面参数!

-好处:省了一个函数名、防止重名、解决i的问题(事件里面的i 定时器的i)

-------

underfined:

1.定义了没有赋值 var a;

2.真的没有定义 typeof a;

3.访问一个不存在的属性  aBtn[i].index;

4.没有明确的返回值;

5.使用一个underfined;

-------

日期对象

var d = new Date();    创建日期对象,取的是系统时间

d.getFullYear();  number 年

d.getMonth();  月  月从0开始算

d.getMonth()+1;  为了显示正确

d.getDate();  日

d.getHours();  小时 24小时制

d.getMinutes();  分钟

d.getSeconds();    秒

d.getMilliseconds();  毫秒

d.getDaty()  星期  星期天==0

d.setFullYear(年,月,日)

d.setHours(小时,分,秒,毫秒)

d.getTime()  返回 时间戳(number)

***设置日期是,时间会顺忒

获取本月有多少天:月+1,日设0,取日

d.setMonth(d.getMonth()+1)

d.setDate(0)

-------

定时器

setInterval(函数,多少时间走一次)  -- 永远执行

setTimeout(函数,多少时间后执行)  --只执行一次

开定时器  var timer = setInterval(fn,time) / var timer = setTimeout(fn,time)

关定时器  clearInterval(timer) / clearTimeout(timer)

***定时器在开之前,先关一下

-------

Math

Math.random()  0-1 包括0 但不包括1

Math.ceil(数据)向上,大,右

Math.floor(数据)  向下,小,左

Math.round(数据)  4小舍5大入

Math.abs(数据) 绝对值

Math.sqrt(数据) 开平方--负数不能开平方返NaN

Math.pow(基数,幂)  基数的幂次方

Math.max/min(数据)  最大、最小

-------

select

***option的value不可以省

oSel.value  返回的是选中的option的value值

oSel.selectedIndex  返回选中的option的索引

oSel.options[oSel.selectedIndex].text  返回是选中的option的内容

onchange事件  当选择发生改变--伴随获取、失去焦点

new Option(text,value)  创建option对象

oSel.options.add(oPt)  options才有添加的方法

oSel.options.remove(索引)  删除

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容

  • 一、比较运算符 1、 有两种比较远算符: == :会自动转换数据类型再进行比较,有时会出现很诡异的结果。 === ...
    胖胖的立阅读 216评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,152评论 0 4
  • 四年前我在一个简陋的要命的教室看完了刘卫东发在《萌芽》里的文章—《开往成都的火车》那时候,我还没有坐过火车,所有的...
    彭彭喜欢Eason阅读 339评论 0 1
  • 写在前面 非常感谢Esther老师关于英语学习的分享,再一次让给我们知道了英语重要性,纠正了我们很多错误的英语学习...
    新海说阅读 560评论 1 1
  • 现金流游戏由玩家的总结引出的思考,十亩荒地究竟是怎样的投资机会?是否值得投资呢? 如果从机会的角度,究竟这个500...
    Ella传送门阅读 615评论 0 2