Dawninest

微信小程序 | 你在B站看番么

小程序名: 你在B站看番么

状态: 1.0已上线, 2.0开发中

从B站Web版拿到的接口记录

通过mid获取B站用户关注的番剧列表

1
2
3
4
5
6
7
8
9
10
11
12
13
https://space.bilibili.com/ajax/Bangumi/getList?mid=10279946&page=4
[{
brief: "人类遭遇了名为“空间震”的新型灾害。震荡空间、将一切破坏殆尽的这一灾厄,是由于存在于临界的精灵出现这..."
cover: "http://i0.hdslb.com/bfs/bangumi/fd61c0a8680678960446a849f2079e0de09d4290.png"
evaluate: ""
favorites: 842317
is_finish: 0
last_ep_index: 0
newest_ep_index: 1
season_id: "26308"
share_url: "http://bangumi.bilibili.com/anime/26308/"
title: "约会大作战 第三季"
total_count: 0
},…]

通过输入关键字搜索指定用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
https://search.bilibili.com/upuser?keyword=Dawninest
res.data.replace(/<script>window.__initial_state__=(.*);\(function/ig,($0,$1)=>{
this.userData=JSON.parse($1).userData
})
[{
"rank_offset": 1,
"usign": "傲娇的iOS Developer",
"videos": 0,
"fans": 2,
"is_upuser": 0,
"upic": "\u002F\u002Fi1.hdslb.com\u002Fbfs\u002Fface\u002F83afeac37a7087aca9efb24f449a04923de708e9.jpg",
"uname": "Dawninest",
"official_verify": {"type": 127, "desc": ""},
"verify_info": "",
"rank_score": 2,
"level": 5,
"gender": 1,
"hit_columns": ["uname"],
"mid": 10279946,
"is_live": 0,
"room_id": 6738557,
"res": [],
"rank_index": 0,
"type": "bili_user"
},..]

新番更新时间表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
https://bangumi.bilibili.com/web_api/timeline_global
[
{
date: “2-8”,
date_ts: 1549555200,
day_of_week: 5,
is_today: 0,
seasons:
[
{
cover: "http://i0.hdslb.com/bfs/bangumi/de944b7c9306932d8dd3dcaeaf2eeec8670deec5.png"
delay: 0
ep_id: 259679
favorites: 1910041
follow: 0
is_published: 1
pub_index: "第6话"
pub_time: "22:00"
pub_ts: 1550066400
season_id: 26284 // 用于跳转的 ssid
season_status: 13
square_cover: "http://i0.hdslb.com/bfs/bangumi/f02cf4282f5dec97d96c8b6afc4301f6bb831cc6.jpg"
title: "盾之勇者成名录"
},...
]
}
]

B站番剧排行[追番人数/最高评分/播放数量]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
eg: 
https://bangumi.bilibili.com/media/web_api/search/result?season_version=-1&area=-1&is_finish=-1&copyright=-1&season_status=-1&season_month=-1&pub_date=-1&style_id=-1&order=4&st=1&sort=0&page=1&season_type=1&pagesize=20

[Get]https://bangumi.bilibili.com/media/web_api/search/result
{
season_version=-1, // 类型 -1/全部,1/正片,2/剧场版,3/其他
area=-1, // 地区 -1/全部,2/日本,3/美国, 1-51不含2,3 /其他
is_finish=-1, // 状态 -1/全部, 1/完结,0/连载
copyright=-1,// 版权 -1/全部, 3/独家, 1,2,4其他
season_status=-1,// 付费 -1/全部, 1/免费, 2/付费, 4,6/大会员
season_month=-1,// 季度 -1/全部, 1/1月, 4/4月, 7/7月, 10/10月
pub_date=-1,// 时间 -1/全部, 2019/年份数字 或 2010-2014区间
style_id=-1,// 风格

order=4, // 0/更新时间排行,2/播放数量排行,3/追番人数排行,4/最高评分排行,5/开播时间排行
st=1, //未知
sort=0, // 0,正序/ 1,倒序
page=1, // 当前页码
season_type=1, // 未知
pagesize=20, // 当前每页数量
}
返回结果例子:
{
data: [
{
badge: "会员专享"
badge_type: 0
cover: "http://i0.hdslb.com/bfs/bangumi/f5d5f51b941c01f8b90b361b412dc75ecc2608d3.png"
index_show: "全14话"
is_finish: 1
link: "https://www.bilibili.com/bangumi/play/ss24588"
media_id: 102392
season_id: 24588
title: "工作细胞"
order: {
follow: "596.3万人追番"
play: "1.4亿次播放"
pub_date: 1530979200
pub_real_time: 1530979200
renewal_time: 1545843600
score: "9.7分"
type: "follow"
}
},

],
page:{
num: 1
size: 20
total: 3096
}
}

番剧详情

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
先得通过season_id拿到media_id
"https://www.bilibili.com/bangumi/play/ss" + seasonId
解析关键字段得到 "https://www.bilibili.com/bangumi/media/" + media_id
返回数据:
{
actors: “利姆鲁·特恩佩斯特:冈咲美保↵大贤者:丰口惠美↵维鲁德拉·特恩佩斯特…” // 角色声优
title:"关于我转生变成史莱姆这档事" // 番名
chn_name: "关于我转生变成史莱姆这档事" // 番名中文
origin_name:"転生したらスライムだった件" // 番名日文
copyright: {
is_finish:0 // 是否完结
is_started:1 // 是否开始
}
cover: "http://i0.hdslb.com/bfs/bangumi/a4c0e0ccc44fe3949a734f546cf5bb07da925bad.png" // 封面
episode_index: {
id:250479
index_show:"连载中, 每周二0:30更新"
is_new:1
}
episodes: { //每一话的数据
[
aid:32836144
cid:57467566
cover:"http://xxxx/4994e631fef939e7f606c012682a96ce2d3bf7b8.jpg"
duration:1420002
ep_id:250460
episode_status:2
from:"bangumi"
index:"1"
index_title:"暴风龙维鲁德拉"
mid:928123
page:1
pub_real_time:"2018-10-02 00:30:00"
section_id:34988
section_type:0
vid:""
]

}
evaluate: “史莱姆生活,开始了。↵上班族的三上悟在道路上被歹徒给刺杀身…” // 简介
media_id: “139252” //
param: {
season_id:25739
season_type:1
}
publish: {
is_finish:0
is_multi:1
is_started:1
pub_date:"2018-10-02"
pub_date_show:"2018年10月2日"
time_length:24
total_ep:0
}
rating: {
count:43958 // 评分人数
score:9.5 // 评分
}
staff: “” // STAFF
stat: {
danmakus:2232701 // 弹幕总数
favorites:4299164 // 追番人数
views:137665521 // 总播放
}
style: [ // 类型?标签?
{
id:117
name:"小说改"
}
...
]
}

计划后续功能

1
2
3
4
1. B站番剧排行页面
2. 用户关联相关设计
3. 热门番剧推荐
4. 想一个更实用的使用点[番剧更新提示推送?]

Android | 学习总结

Android学习总结

最近开发ReactNative项目的时候,或多或少接触了很多Android原生的东西,

虽说能看懂Java代码而且有Google的帮助下能解决几乎所有问题,

但是本着技多不压身的原则,找了个Android入门视频大约了解了一下,

花了接近一个月的闲暇时间看完了整个教程,这里不细致展示每个模块的笔记了,

毕竟开发多年,深知有些东西,在不用的时候没必要过深的了解,只需要知道:

“有这个东西,我可能会用到来解决问题”

然后在用的时候再学就是了,这点学习能力还是有的,

总纲如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
—————————————————————————

| — 界面基础
| — View及ViewGroup
| — 自定义View
| — 相对布局管理器 RelativeLayout
| — 线性布局管理器 LinearLayout
| — 帧布局管理器 FrameLayout
| — 表格布局管理器 TableLayout
| — 网格布局管理器 GridLayout
| — 布局管理器的嵌套
| — 基本UI组件
| — 文本框组件 TextView
| — 编辑框组件 EditView
| — 普通按钮 Button
| — 图片按钮 ImageButton
| — 单选按钮(组) RadioButton / RadioGroup
| — 复选框 checkBox
| — 日期选择器 DatePicker
| — 时间选择器 TimePicker
| — 计时器 Chronometer
| — 高级UI组件
| — 进度条 progressBar
| — 拖动条 seekBar
| — 星级评分 ratingBar
| — 图像 ImageView
| — 图像切换器 ImageSwitcher
| — 网格视图 GridView
| — 下拉列表 Spinner
| — 列表视图 ListView
| — 滚动视图 ScrollView / HorizontalScrollView
| — 选项卡 TabHost
| — 基本程序单元 Activity
| — Activity 之间跳转(Intent)
| — 使用Bundle在Activity之间交换数据
| — 调用另一个Activity并返回结果
| — Fragment (实现微信界面tab标签切换)
| — Intent
| — Intent
| — Action+Data
| — Action+Category
| — Extras和Flags
| — Intent种类
| — Intent过滤器
| — Android事件处理和手势
| — 监听的事件处理
| — 回调的事件处理
| — 物理按键事件处理
| — 单击事件 setOnClickListener
| — 长按事件 setOnLongClickListener
| — 触摸事件 GestureDetector : onTouchEvent
| — 手势事件
| — Android应用资源
| — 字符串资源 strings.xml
| — 颜色资源 colors.xml
| — 尺寸资源 dimens.xml
| — 布局资源
| — 数组资源
| — Drawable资源 (图片,StateListDrawable)
| — mipmap资源
| — 主题资源
| — 样式资源
| — 选项菜单
| — 上下文菜单
| — 国际化
| — Action Bar
| — Action Bar
| — Action Item
| — Action View
| — ActionBar和Tab
| — 层级式导航
| — 消息,通知和广播
| — Toast
| — AlertDialog
| — Notification
| — BroadcastReceiver
| — AlarmManager 设置闹钟
| — 图形图像处理技术
| — 画笔和画布 Paint / Canvas
| — 逐帧动画
| — 补间动画
| — 多媒体相关开发
| — 音频[MediaPlay
| — 音频[SoundPool
| — 视频[VideoView
| — 视频[MediaPlay+SurfaceView
| — 摄像头的拍照和录制
| — 数据存储
| — Shared Preferences存储
| — 内部存储
| — 外部存储
| — 数据库 SQLite
| — Content Provider
| — Handler消息处理
| — Handler消息传递
| — Message
| — Looper
| — Service应用
| — Service
| — Bound Service
| — IntentService

—————————————————————————

iOS | 常用设计模式

iOS实用13种设计模式

适配器模式

适配器模式将一个类的接口适配成用户所期待的。一个适配器通常允许因为接口不兼容而不能一起工作的类能够在一起工作,做法是将类自己的接口包裹在一个已存在的类中。

策略模式

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

观察者模式

当对象间存在一对多关系时,则使用观察者模式

一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。

原型/外观模式

原型模式:(Prototype Pattern)用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。
外观模式:(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

装饰模式

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。

工厂模式

  • 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
  • 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
  • 抽象工厂模式
    • 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
    • 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。

桥接模式

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。

代理模式

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。
在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

单例模式

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

备忘录模式

备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。

建造者模式

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。

命令模式

命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。

组合模式

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。

例子:文件夹系统

这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。

ReactNative | RN的ftp插件

ReactNative NativeModule FTP (iOS only)

由cordova插件 cordova-plugin-ftp 改造, 根据公司需求加了多个传输队列,封装了RN自定义插件接口,

详细文档记录在 GitHub 中

GitHub地址

全网唯一React Native FTP 的iOS解决方案

ReactNative | 混合多个ReactNative项目的思考

混合多个ReactNative项目的尝试[iOS]

此文建议有一定ReactNative基础和iOS开发基础之后再阅读

1
2
3
起因:<br>公司需要在一个平台类的RN项目中,通过跳转打开另外一个RN项目,但是并不想另外一个RN项目出现在手机桌面上,
安卓版的直接用linking解决了,但是iOS的并不能安装一个不现实的应用,所以没法使用安卓类似的思路解决,
所以尝试将多个RN项目打包到一起通过iOS原生代码进行切换

在RN的iOS项目中,在AppDelegate.m中,是通过这样的代码启用RN模块的:

1
2
3
4
5
6
7
NSURL *jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"test"
initialProperties:nil
launchOptions:NULL];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
self.view = rootView;

可见,通过”index.ios”找到工程项目中指定的启动ReactNative的js文件,然后通过moduleName拿到在启动文件中注册的module信息 在index.ios.js中通过这样的代码来注册moduleName:

1
AppRegistry.registerComponent('test', () => test);

就是说,如果这里不禁止同时注册多个的话,是可以在iOS原生代码中进行切换不同moduleName的ReactNative项目的, 所以,在此注册多个:

1
2
AppRegistry.registerComponent('test', () => test);
AppRegistry.registerComponent('test1', () => test1);

然后把AppDelegate.m中启动ReactNative项目的代码拿到新的ViewController中,指定当前ViewController.view = rootView
在这个ViewController中,随便写一个跳转新ViewController方法作为事件响应,跳转后也用同样的方法:

1
2
3
4
5
6
7
NSURL *jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"test1"
initialProperties:nil
launchOptions:NULL];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
self.view = rootView;

つづく

ReactNative | 图片预览插件(iOS)

自制插件 picReader 记录

项目名: react-native-picReader-iOS

GitHub地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
开发遇到的难点有这么几个方面:
1.图片缩放及拖动的极限及归位
2.超长图的支持,根据尺寸设定特别的缩放系数

关于拖动限制的计算思路
参数:x,y 当前拖动界面的中心点坐标
noteWidth,noteHeight 缩放后的实际宽高
SCREEN_W,SCREEN_H 屏宽高
需考虑的判断条件:
图宽/图高>屏宽/屏高 -宽填充满/高填充满
图高:屏高 图宽:屏宽
需满足的要求:
拿 图高 > 图宽 说明,反之同理
1.图高<屏高 图宽<屏宽 时,图片的中心点与屏幕中心点一致,不允许拖动
2.图高>屏高 图宽<屏宽 时,只允许上下拖动(限制上下极限),不允许左右拖动
3.图高>屏高 图宽>屏宽 时,允许上下拖动(限制上下极限),左右拖动(限制左右极限)

日语 | 日语学习笔记

五十音图

  • 第一行

    あ い う え お

    ア イ ウ エ オ

    a i u e o

    阿 衣 乌 哎 哦

    1
    2
    3
    4
    あい ①爱
    え ①画
    あおい ②蓝色
    うお ⓪鱼
  • 第二行

    か き く け こ

    カ キ ク ケ コ

    ka ki ku ke ko

    1
    2
    3
    4
    5
    6
    いか  ⓪鱿鱼
    えき ①车站
    いけ ②池塘
    かく ①书写
    かお ⓪脸
    あき ①秋天
  • 第三行

    さ し す せ そ

    サ シ ス セ ソ

    sa. shi su se. so

    shi 发音 同。西

    su 发音 斯

    1
    2
    3
    4
    5
    6
    すぃ  ①②寿司
    いす ⓪椅子
    さけ ⓪酒
    おかし ②点心
    せかい ①世界
    あさ ①早上
  • 第四行

    た ち つ て と

    タ チ ツ テ ト

    ta. chi.tsu te. to

    chi读作 七

    tsu读作 吃

    1
    2
    3
    4
    5
    6
    つくえ ①桌子
    たこ ②章鱼
    いと ①线
    て ①手
    とかい ⓪城市
    あつし ②热
  • 第五行

    な に ぬ ね の

    ナ 二 ヌ ネ ノ

    na. ni. nu. ne. no

    1
    2
    3
    4
    5
    6
    7
    いぬ  ②犬
    ねこ ①猫
    にく ②肉
    のき ⓪屋檐
    なつ ②夏
    あに ①哥哥
    あね ①姐姐
  • 第六行

    は ひ ふ へ ほ

    ハ ヒ フ へ ホ

    ha hi fu. he. ho

    1
    2
    3
    4
    5
    6
    はな  花
    はし 橋
    ひたい 額头
    ほし 星
    へた 下手 不擅长
    ふさい 夫妻
  • 第七行

    ま み む め も

    マ ミ ム メ モ

    ma mi mu me mo

    1
    2
    3
    4
    5
    6
    まち  町 街
    あめ 雨
    かいもの 買い物
    かみ 髪
    むすめ 娘 女儿
    むし 虫
  • 第八行

    や い ゆ え よ

    ヤ イ ユ エ ヨ

    ya. i. yu. e. yo

    1
    2
    3
    4
    やおや  八百屋 果蔬店
    おかゆ お粥
    よなか 夜中
    やすみ 休み
  • 第九行

    ら り る れ ろ

    ラ リ ル レ ロ

    ra. ri. ru. re. ro

    读音类似于

    la li. lu. le. lo

    1
    2
    3
    4
    5
    6
    さくら 櫻
    くすり 薬
    ホテル hotel
    かれし 彼氏 男票
    はしる 走る 奔跑
    ロシア
  • 第十行

    わ い う え を

    ワ イ ウ エ ヲ

    wa i. u. e. o

    1
    2
    にわ  庭
    わらう 笑う

つづく

JavaScript | h5中的js

1
2
3
<script stype=“text/javascript”>  </script>
<script stype=“js内容.js”> </script>
可放到html中的任意位置,不过前面的会被先执行

alert

document.write

  • confirm - 是否选项框 eg:var bool = confirm(“??”) 选择是,返回true,选择否,返回 false

  • prompt - 消息对话框(包含 确定按钮,取消按钮,文本输入框) eg: prompt(str1,str2) str1对话框文本,不可更改 str2对话框内容,可修改

window.open([URL],[窗口名称],[参数字符串])

URL:网址或路径

窗口名称:可由字母数字和下划线字符组成;_blank-新窗口显示目标网页/_self-在当前窗口显示目标网页/-top-框架网页中在上部窗口中显示目标网页;相同name的窗口只能创建一个

参数字符串:

参数 说明
top number 窗口顶部离开屏幕顶部的像素
left number 窗口左端离开屏幕左端的像素
width number 窗口宽度
height number 窗口高度
menubar yes,no 窗口有没有菜单
toolbar yes,no 窗口有没有工具条
scrollbars yes,no 窗口有没有滚动条
status yes,no 窗口有没有状态栏
1
2
3
close() 关闭窗口
window.close(); 关闭窗口
<窗口对象>.close(); 关闭指定窗口

DOM

文档对象模型DOM(Document Object Model) 定义访问和处理HTML对象文档的标准方法。

DOM将HTML文档呈现为带有元素、属性和文本的树结构(节点树)

  • 通过标签获取元素 document.getElementById(“id”)

  • innerHTML属性 - 用于获取或替换HTML元素的内容

    语法:Object.innerHTML Object是获取的元素对象,

  • 改变HTML元素的样式 Object.style.property=new style;

    object.style.display 制定标签的显示和隐藏 none-隐藏 block-显示

  • 设置或返回元素的class属性-className 语法:object.className = class

事件

1
2
3
4
5
6
7
8
9
onclick			鼠标单击事件
onmouseover 鼠标经过事件
onmouseout 鼠标移开事件
onchange 文本框内容改变事件
onselect 文本框内容选中事件
onfocus 光标聚集
onblur 光标离开
onload 网页导入
onunloaf 关闭网页

对象

字符串对象 string

返回指定位置字符 string.charAt(index);

返回指定字符串首次出现的位置 string.indexOf()

字符串分割 string.split()

提取字符串 string.substring(x,y) 开始位置,结束位置

提取指定数目字符 string.substr(x,z) 开始位置,截取长度

数组对象 Array

数组连接 concat(arr1,arr2)

指定分隔符连接数组元素 arr.join(分隔符)

颠倒数组元素顺序 arr.reverse()

选定元素 arr.slice(x,y) 开始序号,结束序号 括号里只有一个数字指从这开始到最后

排序 arr.sort(f()) f()-排序方法

window对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
alert()			显示带有一段消息和一个确认按钮的警告框
prompt() 显示可提示用户输入的对话框
open() 显示带有一段消息以及确认按钮和取消按钮的对话框
close() 打开一个新的浏览器窗口或查找一个已命名的窗口
print() 打印当前窗口内容
focus() 把键盘焦点给予一个窗口
blur() 把键盘焦点从顶层窗口已开
moveBy() 可相对窗口的当前坐标把它移动指定的像素
moveTo() 把窗口的左上角移动到一个指定的坐标
resizeBy() 按照指定的像素调整窗口的大小
resizeTo() 把窗口的大小调整到指定的宽度和高度
scrollBy() 按照指定的像素值来滚动内容
scrollTo() 把内容滚动到指定坐标
serInterval() 每隔指定时间执行代码
setTimeOut() 在指定的延迟时间之后来执行代码
clearInterval() 取消serInterval()的设置
clearTimeOut() 取消setTimeOut()的设置

History对象

1
2
3
4
window.history.[属性|方法]
返回上一页 window.history.back(); back() = go(-1)
返回下一个浏览界面 window.history.forward(); forward()=go(1)
返回指定页面 window.history.go(number)

Location对象

用户获取或设置窗体的URL,并且可以用于解析URL

Location.[属性|方法]

1
2
3
4
5
appCodeName 浏览器代码名的字符串表示
appName 返回浏览器的名称
appVersion 返回浏览器的平台和版本信息
platform 返回运行浏览器的系统操作平台
userAgent 返回由客户机发送服务器的 user-agent 头部的值 -即 浏览器内核

screen对象

1
2
3
4
5
6
7
window.screen.属性
avaiHeight 窗口可以使用的屏幕高度
avaiWidth 窗口可以使用的屏幕宽度
colorDepth 浏览器表示的颜色位数 -一般32位
pixDepth 浏览器表示的颜色位数 -一般32位(IE不支持这个属性)
height 屏幕高度
width 屏幕宽度

DOM

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
元素节点
文本节点
属性节点

getElementsById()
getElementsByName()
getElementsByTagName()
elementNode.getAttribute(). 通过元素节点的属性名称获取属性的值
elementNode.setAttribute(name,value). 增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值
节点属性
nodeName:节点名称
元素节点与标签名相同-属性节点是属性的名称-文本节点为#text-文档节点#document
nodeValue:节点值
元素节点为undefined/null.-文本节点为文本本-属性节点为属性的值
nodeType:节点的类型
元素1-属性2-文本3-注释8-文档9

elementNode.childNodes() 访问子节点。 firstChild-lastChild
nextSibling返回某个节点之后紧跟的节点
previousSibling返回某个节点之前紧跟的节点