总结
三套“算法宝典”
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
算法刷题LeetCode中文版(为例)
人与人存在很大的不同,我们都拥有各自的目标,在一线城市漂泊的我偶尔也会羡慕在老家踏踏实实开开心心养老的人,但是我深刻知道自己想要的是一年比一年有进步。
最后,我想说的是,无论你现在什么年龄,位于什么城市,拥有什么背景或学历,跟你比较的人永远都是你自己,所以明年的你看看与今年的你是否有差距,不想做咸鱼的人,只能用尽全力去跳跃。祝愿,明年的你会更好!
由于篇幅有限,下篇的面试技术攻克篇只能够展示出部分的面试题,详细完整版以及答案解析,有需要的可以关注
<strong>©2011</strong>
</body>
</html>
对应与pages控制器,在view/pages/目录下新增两个视图文件:home.php、about.php,内容可以简单的输出文件名,下面就可以在控制器中加载视图了
function view($page = 'home')
{
// 检查视图文件是否存在
if (!file_exists(APPPATH . "/views/pages/" . $page . ".php"))
{
show_404();
}
$data['title'] = ucfirst($page);
$this->load->view('templates/header', $data);
$this->load->view('pages/' . $page, $data);
$this->load->view('templates/footer', $data);
}
通过http://localhost:8080/studyci/1/index.php/pages/view/home就可以看到效果了,这个URL中index.php是入口文件,pages是控制器文件,view是方法名,home是参数值
数据库的运算不是在控制类中进行的,而是在数据模型中,这样就可以容易地被反复使用,数据模型就是对数据库或其他数据存储方式进行取回、插入和更新的地方,在application/models/目录下新建news_model.php,CI规定, 模型类名的首字母必须大写,其他字母小写。 并且确保你的类继承了基本模型类(CI_Model
),文件名应该是模型类名的小写版。
class News\_model extends CI\_Model
{
function \_\_construct()
{
$this->load->database();
}
}
通过下面的脚本建立本地数据库
CREATE TABLE news (
id int(11) NOT NULL AUTO\_INCREMENT,
title varchar(128) NOT NULL,
slug varchar(128) NOT NULL,
text text NOT NULL,
PRIMARY KEY (id),
KEY slug (slug)
);
在数据库新增几条测试数据
下面在模型文件里新增查询代码获取符合条件的news
function get_news($slug = FALSE)
{
if ($slug === FALSE)
{
$query = $this->db->get('news');
return $query->result_array();
}
$query = $this->db->get_where('news', array('slug' => $slug));
return $query->row_array();
}
新增视图index.php,用于展示news列表
<?php foreach ($news as $item): ?>
<h2><?php echo $item['title']; ?></h2>
<div class="main">
<?php echo $item['text']; ?>
</div>
<p>
<a href="http://localhost:8080/studyci/1/index.php/news/view/<?php echo $item['slug']; ?>">
View article
</a>
</p>
<?php endforeach ?>
新增视图view.php,用于展示新闻详情
<?php
echo "<h2>{$news\_item['title']}</h2>";
echo $news\_item['text'] . "<br />";
?>
准备好模型和视图后,新增news控制器,其中包含index和view两个函数,分别跳转到两个视图
function index()
{
$data['news'] = $this->news_model->get_news();
$data['title'] = 'News archive';
$this->load->view('templates/header', $data);
$this->load->view('news/index', $data);
$this->load->view('templates/footer', $data);
}
function view($slug)
{
$data['news\_item'] = $this->news_model->get_news($slug);
if (empty($data['news\_item']))
{
show_404();
}
$data['title'] = $data['news\_item']['title'];
$this->load->view('templates/header', $data);
$this->load->view('news/view', $data);
$this->load->view('templates/footer', $data);
}
到此,实现了一个简单的MVC模式
下面的代码演示如何用表单插入一条记录,首先创建录入数据的表单/views/news/create.php
<h2>Create a news item</h2>
<?php echo validation\_errors(); ?>
<?php echo form\_open('news/create') ?>
<label for="title">Title</label>
<input type="input" name="title" /><br />
<label for="text">Text</label>
<textarea name="text"></textarea><br />
<input type="submit" name="submit" value="Create news item" />
</form>
其中validation_errors()
提供表单验错,form_open()
可以调用控制器的函数
再新建插入输入成功时显示的视图/views/news/success.php
<?php
echo "Add news success<br />";
?>
news控制器新建create函数
public function create()
{
$this->load->helper('form');
### JavaScript
* js的基本类型有哪些?引用类型有哪些?null和undefined的区别。
* 如何判断一个变量是Array类型?如何判断一个变量是Number类型?(都不止一种)
* Object是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的?
* JS常见的dom操作api
* 解释一下事件冒泡和事件捕获
* 事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何组织默认事件?
* 对闭包的理解?什么时候构成闭包?闭包的实现方法?闭包的优缺点?
* this有哪些使用场景?跟C,Java中的this有什么区别?如何改变this的值?
* call,apply,bind
* 显示原型和隐式原型,手绘原型链,原型链是什么?为什么要有原型链
* 创建对象的多种方式
* 实现继承的多种方式和优缺点
* new 一个对象具体做了什么
* 手写Ajax,XMLHttpRequest
* 变量提升
* 举例说明一个匿名函数的典型用例
* 指出JS的宿主对象和原生对象的区别,为什么扩展JS内置对象不是好的做法?有哪些内置对象和内置函数?
* attribute和property的区别
* document load和document DOMContentLoaded两个事件的区别
* JS代码调试
* **[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**
![](https://img-blog.csdnimg.cn/img_convert/a69e7b92af546ecaedf148f129bfef2b.png)